gue*_*bai 6 python python-imaging-library
我需要将图片发送到另一个地方,那里要求图片大小必须小于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()
Run Code Online (Sandbox Code Playgroud)
问题是压缩图片的文件大小不是原始图片的75%或75%*75%,所以我必须压缩它,统计它,再次压缩,我无法选择合适的质量值。
还有其他方法可以解决这个问题吗?请帮助或尝试给出一些如何实现这一目标的想法。
小智 2
当您使用 PIL 更改质量时,图像的尺寸不会改变,它只是使用 JPEG 压缩更改图像的质量。默认情况下该值为 80,因此将该值更改为 75 不会使尺寸减小太多,您可以将该值更改为 60 左右,而不会损失很多图像质量。该值以对数方式减少,因此如果您想要精确的数学计算,可以阅读有关 JPEG 压缩的内容。https://math.dartmouth.edu/archive/m56s14/public_html/proj/Marcus_proj.pdf