php 图片压缩函数

在TP6中,可以放到common.php中,重复利用。代码中设置了临时文件、上传目录和压缩倍数3个参数,也可以根据实际增加参数。使用php gd库,需要确认gd库是否加载。代码如下:

php 复制代码
function image_composer($file_tmp,$dir,$ratio)
{
    // 获取当前时间的毫秒数(包含秒和毫秒)
    $milliseconds = round(microtime(true) * 1000);

    //设置保存目录
    $uploadDir = $dir. '/'. $milliseconds .'.jpg';

    // 获取图片信息
    $imageInfo = getimagesize($file_tmp);
    $source = imagecreatefromjpeg($file_tmp);

    // 获取原始图片尺寸
    list($width, $height) = $imageInfo;

    // 设置新的图片尺寸(例如宽度为原来的一半)
    $newWidth = $width / $ratio;
    $newHeight = $height / $ratio;

    // 创建新的图片资源
    $newImage = imagecreatetruecolor($newWidth, $newHeight);
    // 调整图片尺寸
    imagecopyresampled($newImage, $source, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
    imagejpeg($newImage, $uploadDir, 80);

    // 释放内存
    imagedestroy($newImage);
    imagedestroy($source);

    return $uploadDir;
}
相关推荐
Java之路行者29 分钟前
SpringBoot+XXL-JOB:高效定时任务管理
java·spring boot·后端·spring cloud
王者鳜錸1 小时前
Vue3+SpringBoot全栈开发:从零实现增删改查与分页功能
vue.js·spring boot·后端
red润1 小时前
奇怪?为什么 floor((n + t - 1) / t) 比 ceil(n / t) 更高效?(因为没有浮点转换带来的性能损耗)
前端·后端·算法
WindSearcher1 小时前
关于ReAct Agent的实践
人工智能·后端
前端付豪1 小时前
连夜睡服低管,后端回滚没你想的简单:网易如何用一套体系保障“无痛撤退”?
前端·后端·架构
老友@2 小时前
Spring Boot 应用中实现配置文件敏感信息加密解密方案
java·spring boot·后端·数据安全·加密·配置文件
bobz9652 小时前
透明代理
后端
这里有鱼汤2 小时前
老祖宗没骗我,我把《周易》六十四卦丢给了大A股,市场居然回应了我
后端·python
陈随易2 小时前
2025年100个产品计划之第7个(树图) - 目录结构生成工具
前端·后端·程序员
Victor3562 小时前
MySQL(55)什么是覆盖索引?
后端