jpg, png, gif 格式有何区别,各自的优劣是什么,又有什么应用?
文章目录
JPG/JPEG格式
- JPEG 是一种常见的有损压缩图像格式,常用于数字图像的存储和传输,它采用基于DCT(离散余弦变换)的压缩算法,在图像质量和压缩比之间取得了比较好的平衡
- 由于JPEG 具有压缩比高、图像质量好等特点,被广泛应用于数字图像的存储、传输和显示等方面,如数字相机、手机相机
- 然而,JPEG 是一种有损压缩算法,每次保存和重新压缩JPEG图像都会导致一定程度的信息丢失和质量下降。因此,如果需要对图像进行编辑或修改,最好使用无损压缩的图像格式,例如PNG或TIFF。
(注:JPEG 和 JPG 是同一个图像压缩标准的不同命名方式,都指的是一种基于有损压缩的图像文件格式。JPEG是“Joint Photographic Experts Group”的缩写,而 JPG 则是 JPEG 文件在计算机上的常见扩展名。在实际应用中,两个术语通常可以互换使用,没有本质区别。)
BMP(Bitmap)格式
- BMP是一种无压缩的位图图像格式,也被称为 Windows 位图。它是由 Microsoft 在1980年代开发的,并成为了 Windows 操作系统的标准图像格式之一。
- BMP 格式最大的优点是它可以保存位图图像中的每个像素的颜色信息,不会进行压缩,因此图像质量较高,但文件大小也相对较大。
- 基于以上特点,BMP 格式适用于需要高精度和高质量的图像,如图像处理,打印和印刷等领域,而在互联网中不常用
TIFF(Tagged Image File Format)格式
- TIFF 格式是一种无损压缩的图像格式,允许存储多个图像通道(如RGB、CMYK、灰度等)以及多种图像深度和压缩方式。
- TIFF格式支持多种压缩算法,包括无损压缩算法(如 LZW 和 ZIP)和有损压缩算法(如 JPEG)。
- TIFF 格式广泛应用于印刷和出版行业,以及医学、科学和工业领域等。TIFF 格式可以支持高分辨率和大尺寸图像,并且能够存储元数据(如拍摄设备信息、拍摄时间、地点等),因此被广泛应用于数字存档、印刷和出版行业。
PNG(Portable Network Graphics)格式
- PNG 是一种无损压缩的位图图形格式,由网络图形学组织(W3C)开发。PNG 格式广泛应用于互联网上的图像传输和共享,因为它压缩后不会丢失像素信息,同时支持透明度和图像亮度调整。
- PNG 格式的压缩算法使用 Deflate 压缩算法,它是一种无损压缩算法,可以保证图像质量不会受到影响。与 JPEG 格式相比,PNG 格式的压缩率较低,但是PNG格式可以保证图像质量不会损失。
- PNG 格式支持多种色彩模型,包括灰度图像、索引颜色图像和真彩色图像,具有更高的色彩深度,可支持 24 位真彩色、16 位灰度和 8 位索引颜色图像。PNG 格式还支持透明通道,可以在图像中添加透明背景,使其能够更好地适应网页和其他应用的需求。
总的来说,PNG格式适用于需要保证图像质量的场合,如网页设计、电子出版、计算机游戏等领域。
GIF(Graphics Interchange Format)格式
GIF格式是一种非常流行的图像文件格式,它最初由 CompuServe 公司在1987 年开发出来,目的是为了在网络上共享图像。GIF格式采用了LZW压缩算法,支持最多256色,可以支持透明度,动画以及简单的交互式操作。
由于GIF格式可以支持动画,因此它在Web开发中广泛应用于制作动态图片和简单的动画。此外,GIF格式还可以用于图标、标志和简单的插图等方面。
GIF格式相对于其他图像格式具有较小的文件大小,因此在网络上传输速度较快,而且支持透明背景,可以实现图像重叠效果,具有很好的可移植性和广泛的兼容性。然而,GIF格式只支持256种颜色,不适合处理色彩较为丰富的图像,也不能很好地处理渐变和连续色调的图像。
关于 JPEG 的一个小问题
本人在使用 matlab 时,发现当读入 JPG 图片时,不论是灰度图还是彩色图,都会产生三个通道?
这是因为 JPG 格式的图像通常是通过对 RGB 三个颜色通道进行有损压缩来实现的。
所以 Matlab 读入 JPG 格式的图像通常会产生三个通道,分别对应图像的红色、绿色和蓝色通道。这时我们可以使用 rgb2gray 函数来使三个通道的灰度图转化为一个通道,方便后续操作。
举例:
- 直接读入 JPG
- 使用函数转换:
附:rgb2gray 函数解释
该函数会根据以下公式将RGB图像转换为灰度图像:
grayImg = 0.2989 * R + 0.5870 * G + 0.1140 * B
其中,R、G和B分别表示图像中每个像素的红、绿和蓝颜色通道的强度值。而权重值是根据人眼对不同颜色的敏感度来确定的。