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;
}
相关推荐
快乐就是哈哈哈5 小时前
《一文带你搞懂ElasticSearch:从零到上手搜索引擎》
后端·elasticsearch
大鸡腿同学5 小时前
身弱:修炼之路
后端
bobz9656 小时前
cpu 调度 和 gpu 调度
后端
AirMan6 小时前
深入揭秘 ConcurrentHashMap:JDK7 到 JDK8 并发优化的演进之路
后端·面试
bobz9656 小时前
Linux CPU 调度模型
后端
计算机学姐6 小时前
基于SpringBoot的社团管理系统【2026最新】
java·vue.js·spring boot·后端·mysql·spring·mybatis
Java中文社群7 小时前
白嫖ClaudeCode秘籍大公开!超详细
人工智能·后端
David爱编程8 小时前
volatile 关键字详解:轻量级同步工具的边界与误区
java·后端
回家路上绕了弯11 小时前
ClickHouse 深度解析:从核心特性到实战应用,解锁 OLAP 领域新势能
数据库·后端
xiaok11 小时前
本地用VScode的Live Server监听5500访问页面,ubuntu上不需要在配置5500
后端