比较JPG、PNG、GIF、BMP图片格式

时间:2024-04-05 12:09:05

本文比较JPG、PNG、GIF、BMP四种常见的图片格式的优劣。

基本概念

首先需要了解电子图片的一些基本概念:

  • 分辨率

    • 可以用(水平像素数×垂直像素数)表示,即图片的长宽是多少个像素点。
    • 也可以用DPI(Dots Per Inch)、PPI(Pixels Per Inch)表示,即每英寸内有多少个像素点。
  • 位深度:指图片中的每个像素点用几个二进制位表示。这些二进制位有多少种取值,就能存储多少种颜色。

    • 位深度可取值为1、4、8、16、24、32。
    • 位深度为1 bit时,只能存储黑白两种颜色。
    • 位深度为8 bit时,可以存储256种颜色。
    • 位深度为24 bit时,可以存储2563种颜色。
  • 颜色模式。

    • 黑白图 :位深度为1 bit,由一排排0、1的二进制位组成。
    • 灰度图 :位深度为8 bit,只有一个灰度通道,用0~256表示黑色、白色以及中间的254种灰色。
    • 索引颜色 :位深度为8 bit,将图中的颜色数减少到256种以内,把它们记在一个调色板上,然后记录图中的每个像素点采用编号0~256中的哪种颜色。这样能减少图片体积,但是能表示的颜色数量有限。
    • RGB :位深度为24 bit,又称为真彩色,有RGB三个通道,每个通道占8 bit。
    • RBGA :位深度为32 bit,多了一个描述透明度的Alpha通道,每个通道占8 bit。
  • 图片体积:即图片占用的存储空间。

    • 比如一张分辨率为1080×720、位深度为24 bit的图片,其理论体积为:1080×720×(24/8)≈2.2MB。
  • 压缩方式

    • 不压缩:不压缩图片的体积,直接保存原图。
    • 无损压缩:可以压缩图片的体积,且压缩时没有损失图片的任何质量。
    • 有损压缩:可以压缩图片的体积,但压缩时降低了图片的质量。压缩率越高,画质越差。

比较四种图片格式

图片格式 JPG/JPEG PNG GIF BMP
位深度 最高为24 bit 最高为32 bit 最高为8 bit,画质差 最高为32 bit
图片体积 较小 较大 很小 很大
能否压缩 有损压缩,压缩率可以很高(通过舍弃一些不影响人眼观看的细节,来压缩体积) 无损压缩,压缩率低 无损压缩,压缩率高 不压缩
能否透明 不能 能(在RGB通道之外加了一个Alpha通道,用0~256表示透明度) 能(但是不能控制透明度,要么完全透明要么不透明) 不能
总结 适合保存色彩丰富、却要压缩体积的图片 适合保存色彩丰富、又不限制体积的图片、透明图层 适合保存色彩简单、而体积很小的图片。不仅可以存储单张图片,还支持用多帧组成动画 体积很大,不适合在网络传输
  • 欢迎纠正

实验分析

  1. 在PhotoShop中创建一个1920×1080分辨率的画板,采用RGB模式(每个通道占8位)。清空画板使其透明,只能看到方格背景。
    比较JPG、PNG、GIF、BMP图片格式
  2. 将这个图片分别保存为位深度为24 bit的jpg、png、bmp格式,以及位深度为8 bit的gif格式,结果如下。bmp图片由于不压缩,体积很大。

比较JPG、PNG、GIF、BMP图片格式

  1. 在透明画板上画一道彩虹:
    比较JPG、PNG、GIF、BMP图片格式
  2. 再分别保存为四种格式的图片,结果如下。这里是使用默认的压缩率,实际上gif、jpg图片还可用压缩到更小的体积。
    比较JPG、PNG、GIF、BMP图片格式
  3. 它们在PhotoShop中的显示效果如下:
  • png:彩虹的两侧是透明的。彩虹的边缘从不透明逐渐淡化,直到完全透明。
    比较JPG、PNG、GIF、BMP图片格式
  • gif:彩虹的两侧是透明的。但边缘生硬,要么不透明,要么完全透明。

比较JPG、PNG、GIF、BMP图片格式

  • jpg:透明信息被丢失,被纯白色填充。

比较JPG、PNG、GIF、BMP图片格式

  • bmp:跟jpg图片看起来一样。

比较JPG、PNG、GIF、BMP图片格式