gpt4 book ai didi

python - 如何在不改变尺寸的情况下减小 PNG 图像的文件大小?

转载 作者:太空宇宙 更新时间:2023-11-03 15:36:27 39 4
gpt4 key购买 nike

我想使用 Python 减小 PNG 文件的文件大小。我在互联网上浏览了很多资料,但我找不到任何可以在不改变尺寸(即高度/宽度)的情况下减小图像文件大小的东西。我发现的是如何使用 PIL 或其他一些 Python 库更改图像的尺寸。

如何在保持尺寸不变的情况下减小图像文件的大小?

最佳答案

PNG 是一种无损格式,但它仍然可以以无损方式压缩。 Pillow's Image 类带有一个接受 compress_level 参数的 png 编写器。

可以很容易地证明它是有效的:

第 1 步:加载 .png 格式的通用 rgb lena 图像:

import os
import requests
from PIL import Image
from io import BytesIO

img_url = 'http://pngnq.sourceforge.net/testimages/lena.png'
response = requests.get(img_url)
img = Image.open(BytesIO(response.content))

第 2 步:使用 compress_level=0 写入 png:

path_uncompressed = './lena_uncompressed.png'
img.save(path_uncompressed,compress_level=0)
print(os.path.getsize(path_uncompressed))
> 691968

img_uncompressed: 691968 bytes

第 3 步:使用 compress_level=9 写入 png:

path_compressed = './lena_compressed.png'
img.save(path_compressed,compress_level=9)
print(os.path.getsize(path_compressed))
> 406889

img_compressed: 406889 bytes

在这种情况下,它为我们提供了可观的 30% 压缩率,而没有任何明显的图像质量下降(这对于无损压缩算法来说应该是预期的)。

关于python - 如何在不改变尺寸的情况下减小 PNG 图像的文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54570614/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com