如何使用PIL压缩图像?调整quality参数后文件大小无变化怎么解决?
问题原因
你当前保存的是TIFF格式图像,PIL的quality参数仅对JPEG、WebP这类支持有损压缩的格式生效,默认状态下TIFF采用无压缩或无损压缩方案,不会响应quality参数调整,因此修改该参数不会改变输出文件大小。
解决方案
方案1:更换为支持有损压缩的格式
如果没有必须使用TIFF的要求,直接将保存格式替换为JPEG、WebP即可让quality参数生效,示例代码:# 保存为JPEG格式 img.save('Compressed_image.jpg', dpi=[300,300], quality=35)调整quality数值即可直接控制文件大小,数值越低压缩率越高、图像质量越低。
方案2:保留TIFF格式,指定压缩方式
如果必须使用TIFF格式,需要显式指定压缩参数才能实现体积压缩:- 无损压缩场景:使用deflate压缩算法,压缩后图像质量无损失,体积相比无压缩TIFF明显减小
img.save('Compressed_image.tiff', dpi=[300,300], compression='deflate') - 有损压缩场景:指定使用JPEG压缩算法,此时
quality参数会正常生效,调整数值可控制压缩率# 若原图为带透明的RGBA模式,需要先转为RGB再用JPEG压缩,否则会报错 # img = img.convert('RGB') img.save('Compressed_image.tiff', dpi=[300,300], compression='jpeg', quality=35)
- 无损压缩场景:使用deflate压缩算法,压缩后图像质量无损失,体积相比无压缩TIFF明显减小
内容的提问来源于stack exchange,提问作者disukumo
相关产品推荐
相关产品推荐

