imagejpeg 函数是您分配质量的地方。如果您已经将其设置为适当的值,那么您几乎无能为力。
页面速度可能认为所有超过一定尺寸的图像都“需要压缩”,也许只是确保它们都尽可能小(就高度/宽度而言)并被压缩。
您可以在 pagespeed 文档http://code.google.com/speed/page-speed/docs/payload.html#CompressImages上找到有关页面速度及其压缩建议的更多信息,该文档描述了一些适当压缩的技术/工具。
我也刚刚阅读了以下内容:
有几种工具可以对 JPEG 和 PNG 文件进行进一步的无损压缩,而不会影响图像质量。对于 JPEG,我们建议使用jpegtran或jpegoptim(仅在 Linux 上可用;使用 --strip-all 选项运行)。对于 PNG,我们推荐OptiPNG或PNGOUT。
所以也许(如果你真的想坚持谷歌的建议)你可以使用 PHPexec
在文件上传时运行其中一个工具。
要使用 php 进行压缩,请执行以下操作(听起来您已经在执行此操作):
$source_url
图像在哪里$destination_url
,保存在哪里,$quality
是一个介于 1 和 100 之间的数字,用于选择使用多少 jpeg 压缩。
function compressImage($source_url, $destination_url, $quality) {
$info = getimagesize($source_url);
if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source_url);
elseif ($info['mime'] == 'image/gif') $image = imagecreatefromgif($source_url);
elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source_url);
//save file
imagejpeg($image, $destination_url, $quality);
//return destination file
return $destination_url;
}