在构建网站或界面等时,什么时候应该使用特定的图像文件类型?
他们的优点和缺点是什么?
我知道PNG和GIF是无损的,而JPEG是有损的。 但是PNG和GIF的主要区别是什么呢? 为什么我要选择一个而不是另一个呢? 什么是SVG,什么时候应该使用它?
如果你不关心每一个像素,你应该总是使用JPEG,因为它是“最轻”的?
在构建网站或界面等时,什么时候应该使用特定的图像文件类型?
他们的优点和缺点是什么?
我知道PNG和GIF是无损的,而JPEG是有损的。 但是PNG和GIF的主要区别是什么呢? 为什么我要选择一个而不是另一个呢? 什么是SVG,什么时候应该使用它?
如果你不关心每一个像素,你应该总是使用JPEG,因为它是“最轻”的?
当前回答
有一个黑客可以使用GIF图像来显示真实的颜色。一个人可以准备一个GIF动画与256色调色帧0帧延迟,并设置动画只显示一次。所以,所有的帧都可以同时显示。最后,一个真正的彩色GIF图像被渲染。
许多软件都能够准备这样的GIF图像。但是,输出文件的大小大于PNG文件。如果确实有必要,就必须使用。
编辑:正如@mwfarnley提到的,可能会有小问题。不过,仍有可能的变通办法。这里可以看到一个工作示例。最终渲染的图像是这样的:
full-color-gif-image
其他回答
如果你选择JPEG格式,并且你正在处理一个网站的图像,你可能会考虑谷歌Guetzli感知编码器,它是免费的。根据我的经验,对于一个固定质量的Guetzli生成的文件比标准JPEG编码库更小,同时保持与JPEG标准的完全兼容性(因此您的图像将具有与普通JPEG图像相同的兼容性)。
唯一的缺点是Guetzli需要大量的时间来编码。但这只做一次,当你为网站准备图像时,而好处永远存在!较小的图像将花费更少的时间下载,所以你的网站速度将提高在日常使用。
截至2018年,我们有了几种新的格式,更好地支持以前的格式,以及一些使用视频代替图像的聪明技巧。
的照片
JPG -仍然是最广泛支持的图像格式。
webp -谷歌的新格式。很好的潜力,尽管浏览器支持不是很好。
图标和图形
SVG——只要可能。它在视网膜屏幕上的伸缩性很好,在文本编辑器中可编辑,如果在DOM中加载,则可通过JS/CSS自定义。
PNG -如果它涉及光栅图形(即在photoshop中创建)。支持透明性,这在这个用例中非常重要。
对于动画
SVG -加上CSS动画矢量图形。svg的所有优点+ css动画的力量。
GIF -仍然是最广泛支持的动画图像格式。
Mp4 -如果动画图像实际上是短视频剪辑。Twitter / Whatsapp将gif转换为mp4。
apng -不错的浏览器支持(即没有IE, Edge),但创建它不像gif那样简单。
Webp -接近使用mp4。可怜的支持
这是各种动画图像格式的一个很好的比较。
最后,无论哪种格式,都要确保优化它——每种格式都有工具(如SVGO, Guetzli, OptiPNG等),可以节省大量的带宽。
GIF只支持256种颜色,不支持真正的透明。你应该使用PNG而不是GIF,因为它提供更好的压缩和功能。PNG非常适合小而简单的图像,如logo、图标等。
JPEG对照片等复杂图像有更好的压缩效果。
GIF有8位(256色)调色板,而PNG有24位调色板。所以,PNG可以支持更多的颜色,当然算法也支持压缩
GIF基于每个图像的256色调色板(至少在其基本的化身)。PNG可以做“真彩色”,即1670万种颜色。无损PNG压缩比无损gif更好。GIF可以做“二进制”透明度(0%不透明度或100%不透明度)。PNG可以处理alpha透明。
总而言之,如果你不需要使用alpha透明图像并且支持IE6,当你需要像素完美的图像来制作矢量插图等时,PNG可能是更好的选择。JPG是无与伦比的照片。