图像压缩的最佳实践是什么?

3
我正在接手一个网站,并需要处理图像压缩过程。
目前,当上传图片时,它以高质量存储在服务器上,当网站被缓存时,图像会被压缩以用于缓存。因此,缓存中有一份图像的压缩副本,而原始的高质量图像仍存储在服务器上。 负责执行上述操作的工具是由当前网站所有者开发的,由于我无法获得该工具,因此我需要另一个工具。目前,该网站正在使用Pydio,但我没有看到任何压缩选项。
既然似乎我需要一个新的图像压缩工具,我想先了解最佳实践,即性能方面处理压缩的方式,我知道这里有一些经验丰富的开发人员。
我考虑了一些选项:
1. 保持现状,即将原始图像存储在服务器上,并在缓存时对其进行压缩(与网站兼容性最好,因为这是当前使用的工具所做的)。
2. 在上传图片时立即压缩所有图像,因此我只有压缩后的图像存储在服务器上并用于缓存(节省存储空间,但不知道如何与Pydio结合使用)。
3. 设置一个计划任务,压缩所有尚未压缩的图像(使我能够自由上传图像,无需担心压缩它们,尽管图像不会立即被压缩)。
4. 将图像上传到一个压缩图像的网站上,然后获取输出的图像并上传它(听起来很愚蠢,并且需要大量操作才能上传一张图片)。
您认为哪种是最佳实践,为什么?此外,是否有更好的压缩图像的方法?
另外,如果您知道任何具有API的工具或其他信息,我将非常感谢。该网站使用PHP构建。

图像压缩技术因不同的MIME类型图像而异。例如,带有透明度的PNG需要不同的压缩技术,而JPEG则需要另一种技术。考虑使用此图像优化作为起点。对于工具,您可以使用开源软件,例如optiPNG、gifsicle、mozjpeg和jpeg-archive进行压缩。但大多数情况下,您需要微调任何用于压缩质量权衡的工具。 - t6nand
2个回答

0

由于你所问的问题是一个一般性的方法问题,我会提供我的意见。

关于你的方法:

选项4 - 你可以使用一些离线软件或外部网站进行压缩,但这似乎是繁琐的工作。如果我每天需要上传一张图片,我可能会选择这个选项。

选项2 - 我宁愿不在上传时进行压缩,因为这样会丢失原始图像。图像压缩可能会严重破坏一些图像。

至于选项1和3 - 我认为这取决于你的服务器资源、图片数量、网站流量等资源。通常情况下,我更喜欢按请求进行压缩/缓存,而不是上传,但对于一个较小的网站,这应该没有太大的区别。

至于API - 通常有两种选择:在你的服务器/网站上完成工作或使用外部服务。

关于服务方面,我们使用CloudImage,它有非常简单的API,并且在压缩过程中(如果需要调整大小)非常有帮助。此外,您还可以享受CDN的好处,这将提高性能。由于您正在使用Pydio,我假设您需要数据安全和隐私,因此CloudImage可能是一个很好的选择,因为他们非常重视隐私。

如果您更喜欢自己处理,而且您使用PHP,我建议您使用ImageMagick和PHP库IMagick。您可以控制压缩的每个参数,文档也相当不错。唯一的缺点是,在最初的试验和错误中,要实现最佳压缩而不失质量有点困难。

祝你好运!


-3

在Whatsapp上发送您的图像给其他人,接收到的图像将被压缩到适当的大小。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接