栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python图像库(PIL),如何将图像压缩成所需的文件大小?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python图像库(PIL),如何将图像压缩成所需的文件大小?

JPEG压缩事先无法预测。您所描述的方法,压缩和测量并重试,是我知道的唯一方法。

您可以尝试压缩具有不同质量设置的许多典型图像,以了解最佳起点,以及猜测设置的更改将如何影响尺寸的方法。这样一来,您无需进行太多迭代即可将最佳尺寸归零。

您还可以将类似文件的对象传递给

save
无需费心写到磁盘的函数,只需计算字节数即可。确定最佳设置后,即可将其再次保存到实际文件中。

编辑:这是一个合适的字节计数文件对象的实现。

size
保存后只需检查即可。

class file_counter(object):    def __init__(self):        self.position = self.size = 0    def seek(self, offset, whence=0):        if whence == 1: offset += self.position        elif whence == 2: offset += self.size        self.position = min(offset, self.size)    def tell(self):        return self.position    def write(self, string):        self.position += len(string)        self.size = max(self.size, self.position)

编辑2:这是使用以上方法的二进制搜索,以

quality
最小的尝试次数获得最佳结果。

def smaller_than(im, size, guess=70, subsampling=1, low=1, high=100):    while low < high:        counter = file_counter()        im.save(counter, format='JPEG', subsampling=subsampling, quality=guess)        if counter.size < size: low = guess        else: high = guess - 1        guess = (low + high + 1) // 2    return low


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639290.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号