2012-06-10 45 views
2

我还没有找到类似的问题,我正在寻找图像优化。图像优化(谷歌应用程序引擎与Python)

我测试过很多的Facebook如何优化上传的图片:

980KB - > 77KB

846KB - > 62.1KB

从我发现了什么,对于上面的测试,Facebook仍然可以将图像优化10倍,同时仍然保留最低的图像质量。

所以,任何人都可以分享什么是您已实现优化用户上传图片的最佳途径?

当我搜索互联网,我已经看到了一些网站提供图像优化有偿服务。但是,我们不希望在此阶段订阅任何付费服务以进行图像优化。

我发展与谷歌App Engine环境中Python语言的项目。我们可以从Python库甚至Google App Engine库中重用的任何部分实现这一目标?

+0

IMO,Facebook以较低分辨率发布图像,同时仍然提供更高分辨率的图像供下载。 – SuperSaiyan

回答

3

基本的优化可以归结为:

  1. 选择适当的格式图像(通常为 jpeg的照片,你可以使用JPEG全线如果你不 关心的图像质量,但另有对于为png等截图可以 明智)

  2. 缩小以便最小分辨率适合您 应用

  3. 增加压缩级别为可能的最高水平,同时保持 的质量标准

您还可以通过剥离无关的元数据,鸡蛋里挑骨头,但通常是不必要的,不可取的。

如果你想要做的这一切自动化的方式,你必须设置一刀切的标准格式和压缩级别,并接受它不会是完美的在所有情况下,或者能够以编程方式确定适合图像的设置(这非常困难,除非您直接在上传时间询问用户)。

通常我会用ImageMagick via the PythonMagick bindings此任务,但可能是不可行的谷歌应用程序引擎。在这种情况下,也许看看Python Imaging Library

+0

嗨@Andrew Gorcester,这是一个非常丰富的酷分享你的!谢谢 !感谢您的建议,并将铭记在心。 :) – MrCooL

4

也许你应该出演this问题得到pngcrush像添加到AppEngine上的图像API的功能。

+0

我们需要更多的人来解决这个问题!哈哈.. – MrCooL

1

不幸的是你不能使用PythonMagick。但可以安装Python Imaging Library,并参阅Google Imaging Service了解如何使用它。

有没有魔术子弹facebookesque优化。您将不得不尝试开发符合您需要的标准的自己的产品。现在大多数图片都是5mp,并且将其大小调整为1280x720或更少,这在网站中是正常的。在调整大小之前,裁剪无关图像的能力也是可取的。

0

另一种解决方案是使用一个党api,在这种情况下,您可以使用tinyPNG。有压缩算法可能是最好的之一。检查有开发人员指南这里〜>

https://tinypng.com/developers

第一每月500张照片都是免费的&它就像$ 0.009每幅图像(> 500 & & < 9500)或$ 0.002> 10000图片。