为啥同样的文件我压缩后和原来的文件大小差不多?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥同样的文件我压缩后和原来的文件大小差不多?相关的知识,希望对你有一定的参考价值。
不是所有的文件类型压缩后都能变小的。因为计算机存储的是0和1,有些形式的文件采取直接记录各类信息的方式,如avi,txt,wav,bmp等文件。那么这样就会存在很多所谓“冗余”,在表现上就是会有长串的连续的0或者1。任何压缩算法都是通过消除冗余的方式来减少文件大小。类比一下人脑背数字,如有1000个0,没有人会死记硬背1000个数字分别是什么,而是记住有1000个连续的0就行了。压缩算法也可以类比成这样。所以对这类型文件压缩,压缩率会很高。后来人类新开发的存储格式也考虑了这一点,如H.264,jpg,mp3等,存储之前事先就进行了类似处理,记录的不是信息本身,而是在尽可能保持原有信息,或者不影响人们使用以及感受的前提下尽量消除信息冗余或者用处不大的信息。这种类型文件再进行压缩,大小也不会发生多少变化了。追问感觉你回答的很专业,那你可否介绍一款压缩文件
软件
追答winrar呗
参考技术A 这个要看你压缩的文件是什么类型。文件,表格压缩率比较高,视频,图片压缩率不太高。压缩太高了,视频解压图片解压会出问题。 参考技术B 需要再次压缩我认为 PNG 在大小方面比 gif 具有更好的文件压缩率。那为啥我的 PNG 比我的 gif 大?我用pycharm转换文件
【中文标题】我认为 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转换文件