2010-02-11 40 views
2

我正在使用标准PHP函数imagecopytruecolorimagejpeg 来重新调整并从标准HTML表单生成上传的图像。 如何使用PHP和JPEG减小文件大小

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

与使用JPEG高质量设置的Photoshop的Save for Web相比,相同的文件在大约60kb处出现,所以约小4倍。

有什么我可以做的,以减少档案大小?

+1

如何向我们展示实际的代码? – 2010-02-11 13:50:22

回答

1

没有图片库我有史以来最接近Photoshop的压缩文件的效率。您可以尝试使用ImageMagick(又称Imagick)等其他库,它可以以与您使用的默认内容相同的质量保存较小的文件,但请记住,在这个资源库中,您永远不会从这些库中获得60K图像。

+0

我绝对同意这一点。 我做了一些测试,玩PHP imagejpeg函数的$ quality argumnet。结果令人遗憾的是,最大质量($ quality = 100)与Photoshop的质量9相当(从0到12之间的范围内)。因此,如果Photoshop能够以更好的质量保存,而imagejpeg不能! – 2010-02-11 14:40:27

+0

是的,Photoshop并没有作弊,它确实“很好”。 Photoshop将具有更小的质量更好的图像,没有什么比较,甚至没有其他图像应用程序。 – TravisO 2010-02-11 15:08:04

6

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

布尔imagejpeg(资源$图像[,字符串$文件名[摘要$质量]])

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

以我的经验来看,尽管如此,我们不可能远低于70%。

可能想要试试你是否可以从其他图像处理引擎如ImageMagick获得更好的结果,如果你可以使用它。我经常觉得GD的JPG编码器不在行首,但这只不过是目前的主观印象。

+0

我同意,当你低于70时,压缩开始变得明显。 – TravisO 2010-02-11 13:53:30

+0

我不确定'imageMagick',但'imagejpeg'是可怕的,它会创建比原来更大的图像,即使您降低质量... – WonderLand 2015-01-14 05:38:56

0

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

0

docs

布尔imagejpeg(资源$图像[,字符串$文件名[摘要$质量])

实验$质量