为什么ImageMagick生成的'.png'文件比'.jpg'和'.gif'文件要大得多?

161 浏览
0 Comments

为什么ImageMagick生成的'.png'文件比'.jpg'和'.gif'文件要大得多?

这个问题已经有了答案

PNG vs. GIF vs. JPEG vs. SVG的不同用例是什么?[已关闭]

我正在使用ImageMagick将一些文件从一种格式转换为另一种格式。 我一直以为.PNG文件应该和JPEG文件一样大/小,如果不小于JPEG,那肯定比GIF小。

然而,当我运行

convert photo.jpg photo.png 

输出的文件比原始的jpg文件大6倍左右。

原始jpg是一个大约300x500像素的普通照片,大小为52kb。输出是一个相同尺寸的正确的png,但是大小约为307kb?

有人知道出了什么问题吗?我做错了什么吗?

P.S.:

我在Debian和Windows上尝试了两次,结果都一样。

P.P.S.:

当我添加resize选项并将其调整为10000 x 10000时,转换和调整大小到jpg只需要几秒钟,但是如果我对png执行相同的操作,则开始完全耗尽内存

P.P.P.S.:

对于那些将此问题标记为PNG vs. GIF vs. JPEG vs. SVG - When best to use? 的人。请仔细阅读并了解问题。这不是一个重复问题,因为这个问题询问使用特定应用程序(ImageMagick)自动产生的文件。你们标记重复的问题是在询问哪种图片格式更适合在Web上使用。两个完全不同的问题。

admin 更改状态以发布 2023年5月25日
0
0 Comments

JPG是一种有损压缩算法,而PNG是一种无损压缩算法。

仅凭此事实(一般情况下),JPG图像比PNG图像更小。您可以为每种格式调整压缩比,因此可能您未像压缩JPG文件一样压缩PNG文件。

对于摄影图像,保存为JPG通常会产生比PNG更小的文件,因为图像中有更多噪声或随机性可供压缩使用。由图像工具创建的图像往往会有更多硬边缘和大面积颜色块,在PNG中可以更好地压缩。

如果图像中有文本,则PNG将生成更高质量的图像,因为与使用JPG时会模糊的字符的硬边缘不同。

GIF更小,因为它基于颜色调色板(256种颜色),而不是JPG和PNG中每个像素(或像素组)的单独RGB值。

0
0 Comments

需要注意的关键事情是每种图像文件格式都最适合特定的用途。

JPEG代表“联合摄影专家组。”这就告诉你了.JPG文件格式针对照片进行了优化。但是它不太适用于线条艺术、标志、渐变或平铺/图案背景等。与照片相比,JPG的DCT(离散余弦变换)伪像(我们都知道并且厌恶的“块状”伪像)在线条艺术和标志中更加明显。

PNG已经替代了GIF,除了GIF曾经擅长的一件事,即因没有出现明确的标准而仅有这一点:动画。动态GIF在Web上很出名。有两种对于动态PNG的竞争标准:APNG和MNG。

APNG在大多数现代浏览器中被支持,并且也是完全向后兼容的(文件扩展名为.png,而不是.apng,如果任何可以显示.png但不认识APNG的程序收到APNG,则它将显示开发人员选择的替代图像或动画的第一帧,如果没有提供此样的替代,则忽略其余内容),Gecko(FF等)和Presto(Opera)本地支持它,Google Chrome(使用Webkit)可以通过插件支持。

MNG由实际PNG格式开发团队支持,但是它是自身格式,不向后兼容,但更强大和灵活。现在只有基于KHTML(Konquerer)的浏览器支持:不包括Trident(IE),Gecko,Webkit(Chrome,Chromium,Safari)或Presto。

PNG做得比GIF更好地完成了所有任务(除非增强了APNG中的动画)。在相同的分辨率和位深度下,.PNG几乎总是比.GIF更小。与.GIF一样,png可以在索引颜色(调色板)模式下支持每像素8位的颜色深度,但与.GIF不同(但与.JPEG相同),它还支持每像素24位的直接颜色模式。

无论采用哪种模式,它都可以添加8位α透明度,而不像.GIF(只能进行索引颜色透明度[从调色板中选择一个颜色来代替100%透明度,即看不见] — .PNG也可以)。与索引透明度相比,α透明度会产生更好的效果,因为像素可以部分透明,而使用索引透明度(在.GIF中唯一可用的透明度)时,你的选择是不透明或不可见。当放置在非原来“优化”过的背景色上时,这会产生非矩形物体周围的“光环”效果。它也限制了进行效果,例如发光、投影和当然透明色彩对象(无需抖动)。阿尔法透明度可以轻松完成所有这些事情,对几乎任何背景(在白色背景上,光晕将基本看不见,在黑色背景上,投影将不可见,但你知道我是什么意思)。

没错,你可以在带调色板索引的PNG图像中实现8位的透明度! 而且你猜怎么着?甚至Microsoft Internet Explorer 6也可以完全显示它们,包括透明度!只有32位的.PNG图像(24位RGB色彩+8位透明度)会让IE6噎住并显示为灰色!

最知名的能够以PNG8(带调色板索引)和透明度导出的程序是Adobe(前Macromedia)Fireworks。 Photoshop的“保存为Web和设备”(至少在CS3时)不能做到这一点,尽管当Adobe收购了Macromedia时,它基本上从Fireworks中吸收了这一特性。它可以保存PNG8,但仅带有索引颜色透明度。

无论如何,完整的32位(甚至24位)PNG图像将是相当大的,虽然通常比最近的相等BMP或TGA或未压缩的TIFF图像要小得多(除非你试图用它做照片 - 那就用JPEG!)。如果其他条件相等,它通常甚至会比RLE(无损压缩的BMP)或无损压缩的TIF要小。

与大多数其他格式不同,PNG还支持有选择的16位透明度的48位RGB色彩,具有极高的质量(比大多数显示器可以显示的要高得多)。这些最好用作中间存储格式,以保留来自高位深度扫描仪或相机(RAW模式)等的信息。尽管有无损压缩,它们的文件大小仍会相当大。

.PNG目前无法处理像CMYK或L * a * b之类的非RGB颜色空间。

简而言之:

  • 对于照片,请使用JPG。
  • 对于有限颜色的线条艺术和标志,请使用带有透明度的索引颜色.PNG(PNG8)。
  • 对于有广泛颜色的线条艺术和标志(例如有大量渐变填充、金属铬类反射效果等),请使用带有透明度的直接颜色.PNG(PNG24)如果需要最佳质量或需要透明度(并且不介意它不能在IE6中工作或使用各种IE6透明PNG的解决方法),并且不介意更大的文件和带宽使用情况。否则,请使用JPG,但请注意质量会降低。您可能需要相当高的JPEG质量,特别是对于具有其中的“文本”的标志或其他图形,这将降低您的文件大小节省。
  • 对于非Flash / Silverlight / video / HTML5 Canvas动画,GIF目前是首选,但准备切换到APNG(我认为即使JPEG开发人员更官方的支持MNG也无法击败它)。
0