【发布时间】:2018-08-13 23:00:14
【问题描述】:
我需要将图片发送到另一个地方,它要求图片大小必须小于 512kb。
我使用PIL 来处理我从网上下载的图片。所以我不知道下一张图片的尺寸是多少,代码如下:
from PIL import Image
picture_location = '/var/picture/1233123.jpg'
compressed_picture_location = '/var/picture/1233123_compressed.jpg'
im = Image.open(picture_location)
quality = 75
im.save(compressed_picture_location, quality=quality)
im.save()
问题是压缩后的图片的文件大小不是原始图片的75%或者75%*75%,所以我要压缩,stat,再压缩,无法选择合适的质量值。
还有其他方法可以解决这个问题吗? 请帮助或尝试提供一些想法如何实现这一目标。
【问题讨论】:
-
因为压缩是一组离散的过程,我能看到的唯一方法是编写一个暴力破解它的脚本。在你开始之前,你不知道它会是什么。如果你愿意,我可以在下面弹出一个脚本。
-
不幸的是,JPEG 就是这样工作的。您也许可以通过使用
FileIO对象而不是每次都写入磁盘来加快重复试验,尽管由于磁盘缓存,我不希望这会更快。 -
您的进度有什么更新吗?
-
我发现我公司使用的oss服务为压缩图片提供了特定的后缀,通过使用它我解决了这个问题。 :p 但是在技术方法上,我仍然找不到一个干净的解决方案。
标签: python python-imaging-library