如何在PHP中优化图像?

我有一个网站,用户可以在其中保存其个人资料图片(头像).

我想在加载图像时对其进行一些优化.

我的意思是,这是头像图片,不需要全分辨率,也不需要很大的尺寸.

我能做什么?我一直在想:

>调整大小
>质量低

可能:

>将其转换为GIF
>颜色填充为透明PNG

有一些比GD更好(更简单)的库可以做到这一点吗?

非常感谢!

解决方法:

GD是如何做到的.这听起来像是一个简单的操作,但是如果要执行此操作,则确实有很多因素需要正确处理.总而言之,这需要数百行代码来处理所有事情.

我的建议是,尽管您可能希望调整图像的大小(如果使用JPEG,则需要进行有损的重新压缩),但将其转换为GIF是一个坏主意.您不知道源类型是什么,因此这样做很成问题.

这是我推荐的流程:

1)将图像调整为输出格式.如果需要,也可以在此处强制设置裁剪宽高比.

2)确定原始信号源模式:

> 8位索引(GIF / PNG8):另存为PNG8(格式通常小于GIF).
> 16-24位:另存为JPG.质量取决于您,但是70%是一个良好的基准.
> 32位(PNG24):另存为PNG24,请注意保持透明度.

注意,此解决方案几乎销毁了所有“动画”的gif,但是…这就是您尝试调整动画gif大小时发生的情况.

虽然…我也强烈建议您不要将其作为一个单独的步骤进行,并删除原始文件.这种事情只会在以后咬你.

如今,磁盘空间很便宜……以更好的格式(甚至以2K x 2K分辨率)存储原始格式,然后创建可满足您所需分辨率/质量并缓存结果的图像服务会更好.

上一篇:php-GD的收费时间和解析网站的时间


下一篇:php-从html创建图像