Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP和JPEG减少文件大小_Php_Image_Resize_Jpeg - Fatal编程技术网

如何使用PHP和JPEG减少文件大小

如何使用PHP和JPEG减少文件大小,php,image,resize,jpeg,Php,Image,Resize,Jpeg,我使用的是标准PHP函数imagecopytruecolor和imagejpeg 从标准HTML表单重新缩放和生成上载的图像 图像以正确的大小显示,但图像文件大小相当大(例如540px*350px=250kb) 与使用JPEG高质量设置的Photoshop的Save for Web相比,相同的文件的大小约为60kb,是原来的4倍。 我可以做些什么来减小文件大小吗?您可以在imageJPEG中设置$quality。从: bool-imagejpeg(资源$image[,字符串$filename[

我使用的是标准PHP函数
imagecopytruecolor
imagejpeg
从标准HTML表单重新缩放和生成上载的图像

图像以正确的大小显示,但图像文件大小相当大(例如540px*350px=250kb)

与使用JPEG高质量设置的Photoshop的Save for Web相比,相同的文件的大小约为60kb,是原来的4倍。


我可以做些什么来减小文件大小吗?

您可以在imageJPEG中设置
$quality
。从:

bool-imagejpeg(资源$image[,字符串$filename[,int$quality]])

质量是可选的,范围从0(最差质量,较小文件)到100(最佳质量,最大文件)。默认值是默认的IJG质量值(约75)

根据我的经验,低于70%是不可取的


您可能想尝试一下,如果您可以使用其他图像处理引擎,是否可以通过较小的文件大小获得更好的结果。我经常觉得GD的JPG编码器不是最好的,但这只是目前的主观印象。

您可以更改质量设置(参见
imagejpeg的第三个参数)。不过,默认值只有75%,应该已经很小了。

来自

bool-imagejpeg(资源$image[,字符串$filename[,int$quality]])


用$quality进行实验

我所见过的任何图像库都比不上Photoshop压缩文件的效率。您可以尝试使用另一个库,如ImageMagick(又名Imagick),它可能会以与您使用的默认文件相同的质量大小保存较小的文件,但请记住,在这种分辨率下,您永远不会从这些库中获得60K图像。

给我们看实际代码如何?我同意,当你低于70时,压缩开始变得明显。我不确定
imageMagick
,但
imagejpeg
很糟糕,有时它会创建比原始图像更大的图像,即使你降低了质量…我完全同意这一点。我使用PHP imagejpeg函数的$quality argumnet做了一些测试。结果令人遗憾的是,最大质量($quality=100)与Photoshop的质量9相当(从0到12)。因此,如果Photoshop愿意,它可以保存更好的质量,而imagejpeg不能!是的,Photoshop没有作弊,它真的“那么好”。Photoshop将拥有更小、更高质量的图像,没有任何东西可以与之相比,甚至其他图像应用程序也无法与之相比。