/**
* 压缩并替换指定路径的图片文件
*
* @param string $path 图片文件路径
* @param int $quality 压缩质量(0-100)
* @return bool 成功返回 true,失败返回 false
*/
function compressAndReplaceImage($path, $quality = 80)
{
$size = filesize($path);
if ($size < 1024 * 1024) {
//小于1mb不压缩
return true;
}
// 获取图片信息
list($width, $height, $type) = getimagesize($path);
switch ($type) {
case IMAGETYPE_JPEG:
// 载入 JPEG 文件
$src = @imagecreatefromjpeg($path);
// 针对 JPEG 文件进行压缩
imagejpeg($src, $path, $quality);
break;
case IMAGETYPE_PNG:
// 载入 PNG 文件
$src = imagecreatefrompng($path);
// 取消 alpha 通道,并增加像素边缘以防止出现黑色边框
imagealphablending($src, false);
imagesavealpha($src, true);
$transparent = imagecolorallocatealpha($src, 255, 255, 255, 127);
imagefilledrectangle($src, 0, 0, $width, $height, $transparent);
// 针对 PNG 文件进行压缩
imagepng($src, $path, 9);
break;
case IMAGETYPE_GIF:
// 载入 GIF 文件
$src = imagecreatefromgif($path);
// 针对 GIF 文件进行压缩
imagegif($src, $path);
break;
default:
// 不是支持的图片类型
return false;
}
imagedestroy($src);
return true;
} 如果帮助到你,请赏杯奶茶喝~
- 本文链接: https://www.shx1024.top//index/article/details/article_id/109.shtml
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。