【发布时间】:2015-11-25 22:40:51
【问题描述】:
我编写了一个 Python 代码,它将图像的大小调整为最大 1200 x 1200 帧,同时保持纵横比。我遇到了这种情况,输入图像(1080 x 1350)为 249.8KB,而输出图像(960 x 1200)为 317.2KB。尽管optimize = True 并保持了质量,但这种情况仍在发生。我的代码如下:
from PIL import Image
from wand.image import Image as Wand
MAX_RES = 1200
photo = Image.open("input.jpg")
breadth,height = photo.size
qual = Wand(filename="input.jpg").compression_quality
if(not((breadth <= MAX_RES) and (height <= MAX_RES))):
resizeRatio = max (float(breadth)/MAX_RES, float(height)/MAX_RES)
photo = photo.resize((int(breadth/resizeRatio),int(height/resizeRatio)))
photo.save("output.jpg",optimization = True,quality=qual)
使用Image.ANTIALIAS 会进一步增加大小。
【问题讨论】:
-
您确定原始的 JPEG 设置是什么吗? (质量等)
-
压缩图像的文件大小与图像大小没有直接关系。当您修改图像时,即使是简单的调整大小,压缩方法的效率也会降低。
-
@SuperBiasedMan,如何在 Ubuntu 机器上知道这一点?我的硬盘上有文件
-
@SagnikSinha 我对 PIL 不熟悉,但有一个广泛的答案 here
-
@SagnikSinha 您可以使用
identifycommand-line tool 查找图像属性。您的原始图像的质量可能低于调整大小后的图像。
标签: python image-processing jpeg python-imaging-library wand