/** * 压缩并替换指定路径的图片文件 * * @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
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。