我认为 PNG 在大小方面比 gif 具有更好的文件压缩率。那为啥我的 PNG 比我的 gif 大?我用pycharm转换文件

Posted

技术标签:

【中文标题】我认为 PNG 在大小方面比 gif 具有更好的文件压缩率。那为啥我的 PNG 比我的 gif 大?我用pycharm转换文件【英文标题】:I thought PNG had better file compression than gif in terms of size. Then why is my PNG larger than my gif? I used pycharm to convert file我认为 PNG 在大小方面比 gif 具有更好的文件压缩率。那为什么我的 PNG 比我的 gif 大?我用pycharm转换文件 【发布时间】:2021-11-20 15:47:36 【问题描述】:

我用来将 BMP 转换为 GIF 的代码

click here to view the image formats

我用来将 BMP 转换为 GIF 的代码

from PIL import Image
import glob
# Create the frames
frames = []
imgs = glob.glob("*.bmp")
for i in imgs:
    new_frame = Image.open(i)
    frames.append(new_frame)

# Save into a GIF file that loops forever
frames[0].save('bmp_to_gif.gif', format='GIF',
               append_images=frames[1:],
               save_all=True,
               duration=300, loop=0)

BMP 转 PNG

from PIL import Image
Image.open("sample_1920×1280.bmp").save("sample1.png")

【问题讨论】:

你从哪里得到 png 应该小于 gif 的概念?这完全取决于源材料。 这并不是一个真正的平等比较,生成一个(对我们来说)未知大小的图像与单个图像的动画 GIF。 两种情况下得到的颜色深度是否相同? @sj95126 看一下附上的图片,我已经展示了我的 gif 文件及其文件大小。而 gif 只有 1 帧。 WIll it work if 是您在这里从未问过的问题。做吧,让我们知道结果 【参考方案1】:

GIF 正在将图像码垛到 256 色。您的 PNG 压缩不是,保留所有原始颜色,我猜是 RGB。

您可以在使用img.convert("P", palette=Image.ADAPTIVE) 打开 BMP 后将其转换为调色板。保存为 PNG 时,请使用 optimize=True

【讨论】:

以上是关于我认为 PNG 在大小方面比 gif 具有更好的文件压缩率。那为啥我的 PNG 比我的 gif 大?我用pycharm转换文件的主要内容,如果未能解决你的问题,请参考以下文章

比 tf/idf 和余弦相似度更好的文本文档聚类?

JPG、GIF、PNG和BMP格式的图片各有啥优点和缺点?

具有 1x1 像素 PNG 的更好的响应式图像?

将透明 PNG 保存为透明 GIF

前台开发中关于图片的使用

imagemagick minimagick