【发布时间】:2020-12-16 19:28:55
【问题描述】:
每当我打电话给os.path.getsize(file) 时,它都会给我正确的尺寸。当图像超过固定权重时,我必须对其进行转换,然后询问新图像的权重。
我有一个非常基本的函数来返回图像的权重。原因是我想避免通过文件系统。
def get_weight(image: Image, img_format: str) -> int:
out = io.BytesIO()
image.save(out, format=img_format)
return out.tell()
据我了解,它通过字节流复制图像的内容,然后返回位置。我从它的名字假设流缓冲区大小是一个字节,因此position == image weight in bytes。
它与 JPEG 格式不一致。我的图片重量被低估了 20%(在 4 到 8 MB 范围内)。
为什么会这样?
【问题讨论】:
标签: python io python-imaging-library