在构建网站或界面等时,什么时候应该使用特定的图像文件类型?
他们的优点和缺点是什么?
我知道PNG和GIF是无损的,而JPEG是有损的。 但是PNG和GIF的主要区别是什么呢? 为什么我要选择一个而不是另一个呢? 什么是SVG,什么时候应该使用它?
如果你不关心每一个像素,你应该总是使用JPEG,因为它是“最轻”的?
在构建网站或界面等时,什么时候应该使用特定的图像文件类型?
他们的优点和缺点是什么?
我知道PNG和GIF是无损的,而JPEG是有损的。 但是PNG和GIF的主要区别是什么呢? 为什么我要选择一个而不是另一个呢? 什么是SVG,什么时候应该使用它?
如果你不关心每一个像素,你应该总是使用JPEG,因为它是“最轻”的?
当前回答
PNG具有比GIF更广泛的调色板,GIF是专有的,而PNG不是。GIF可以做动画,而normal-png不能。png-transparency只有IE6以上的浏览器才支持,但是Javascript已经修复了这个问题。两者都支持alpha透明性。 一般来说,我想说的是,你应该在大多数网页图形上使用png,而在照片、截图或类似的地方使用jpeg,因为png压缩在这些地方效果不太好。
其他回答
正如@aarjithn所指出的,WebP是用于存储照片的编解码器。
这也是一个存储动画(动画图像序列)的编解码器。截至2020年,大多数主流浏览器都有开箱即用的支持(兼容性表)。 注意WIC有一个插件可用。
它比GIF有优势,因为它基于视频编解码器VP8,比GIF有更广泛的颜色范围,GIF限制为256种颜色,它将其扩展到224 = 16777216种颜色,仍然节省大量的空间。
GIF基于每个图像的256色调色板(至少在其基本的化身)。PNG可以做“真彩色”,即1670万种颜色。无损PNG压缩比无损gif更好。GIF可以做“二进制”透明度(0%不透明度或100%不透明度)。PNG可以处理alpha透明。
总而言之,如果你不需要使用alpha透明图像并且支持IE6,当你需要像素完美的图像来制作矢量插图等时,PNG可能是更好的选择。JPG是无与伦比的照片。
有一个黑客可以使用GIF图像来显示真实的颜色。一个人可以准备一个GIF动画与256色调色帧0帧延迟,并设置动画只显示一次。所以,所有的帧都可以同时显示。最后,一个真正的彩色GIF图像被渲染。
许多软件都能够准备这样的GIF图像。但是,输出文件的大小大于PNG文件。如果确实有必要,就必须使用。
编辑:正如@mwfarnley提到的,可能会有小问题。不过,仍有可能的变通办法。这里可以看到一个工作示例。最终渲染的图像是这样的:
full-color-gif-image
JPEG会有较差的质量在尖锐的边缘等,因此它不适合大多数网络图形。它擅长摄影。
与GIF相比,PNG提供了更好的压缩,更大的调色板和更多的功能,包括透明度。而且它是无损的。
如果你选择JPEG格式,并且你正在处理一个网站的图像,你可能会考虑谷歌Guetzli感知编码器,它是免费的。根据我的经验,对于一个固定质量的Guetzli生成的文件比标准JPEG编码库更小,同时保持与JPEG标准的完全兼容性(因此您的图像将具有与普通JPEG图像相同的兼容性)。
唯一的缺点是Guetzli需要大量的时间来编码。但这只做一次,当你为网站准备图像时,而好处永远存在!较小的图像将花费更少的时间下载,所以你的网站速度将提高在日常使用。