3

我还没有找到我正在寻找图像优化的类似问题。

我测试了 Facebook 可以优化多少上传的图片:

980KB --> 77KB

846KB --> 62.1KB

根据我的发现,Facebook 能够将图像优化多达 10 倍,同时仍然保持一些最低图像质量,就像上面的测试一样。

那么,任何人都可以分享您为优化用户上传的图像而实施的最佳方法是什么?

当我在互联网上搜索时,我看到一些网站提供有偿图片优化服务。但是,我们不希望在现阶段订阅任何用于图像优化的付费服务。

我正在 Google App Engine 环境中使用 Python 语言开发项目。我们可以从 Python 库甚至 Google App Engine 库中重用的任何部分来实现这一点?

4

4 回答 4

5

可能您应该在问题上加注星标,以便将类似 pngcrush 的功能添加到 AppEngine 图像 API。

于 2012-06-10T22:14:21.723 回答
3

基本优化归结为:

  1. 为图像选择适当的格式(通常是 jpeg 用于照片;如果您不关心图像质量,则可以全面使用 jpeg,否则将 png 用于屏幕截图等可能是明智的)

  2. 将图像缩小到适合您应用的最小分辨率

  3. 将压缩级别提高到可能的最高级别,同时保持您的质量标准

您还可以通过剥离无关的元数据来挑剔,但这通常是不必要且不可取的。

如果您想以自动化方式完成所有这些操作,则必须全面设置标准格式和压缩级别,并接受它并非在所有情况下都是完美的,或者能够确定哪些设置是以编程方式适用于图像(这非常困难,除非您在上传时直接询问用户)。

通常我会通过 PythonMagick 绑定使用 ImageMagick 来完成这项任务,但这在 Google Apps Engine 上可能不可行。在这种情况下,也许看看Python Imaging Library

于 2012-06-10T17:59:31.367 回答
3

另一种解决方案是使用3rd方 api,在这种情况下,您可以使用 tinyPNG。那里的压缩算法可能是最好的算法之一。在此处查看开发人员指南 ~>

https://tinypng.com/developers

每月前 500 张照片是免费的,每张图片0.009美元(> 500 && < 9500)或0.002 美元> 10000 张图片。

于 2016-08-11T23:46:34.863 回答
2

不幸的是,你不能使用 PythonMagick。但是可以安装Python Imaging Library ,使用方法请参见Google Imaging Service

没有神奇的 facebookesque 优化。您将不得不尝试开发符合您需要的标准的自己的。现在大多数图像都是 5mp,在网站中将它们调整到 1280x720 或更小是正常的。在调整大小之前也需要裁剪无关图像的能力。

于 2012-06-11T05:07:17.900 回答