• 基本概念
  • 比较四种图片格式
  • 实验分析

本文比较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位)。清空画板使其透明,只能看到方格背景。
  2. 将这个图片分别保存为位深度为24 bit的jpg、png、bmp格式,以及位深度为8 bit的gif格式,结果如下。bmp图片由于不压缩,体积很大。

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

    gif:彩虹的两侧是透明的。但边缘生硬,要么不透明,要么完全透明。

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

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

比较JPG、PNG、GIF、BMP图片格式相关推荐

  1. framebuffer 保存 bmp图片格式

    最近需要完成一个从framebuffer中进行读取,然后将内存的东西保存为bmp图片格式,我的其他博客内容对framebuffer进行详细的讲解,以及bmp的格式进行详细的讲解. 之前从网上看到了一些 ...

  2. c语言画bmp五星红旗图片,用asp程序编写一个bmp图片格式的五星红旗

    用asp程序编写一个bmp图片格式的五星红旗 搜索 今天看到一个用asp程序编写一个bmp图片格式的五星红旗,像手绘的一样,很好,把它转过来和大家分享    view sourceprint?001 ...

  3. BMP图片格式的使用

    BMP图片格式的使用 介绍 BMP(全称Bitmap)是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广.它采用位映射存储格式,除了 ...

  4. Linux系统笔记:shell命令、文件系统、Vi编辑器、文件IO、mmap()、bmp图片格式、线程

    文章目录 一.shell命令集 二.ubuntu文件系统 三.vi编辑器 四.文件IO 五.Linux中C库mmap()函数详解 六.bmp图片格式详解 七.C语言笔记 (一)标准IO函数 time( ...

  5. linux bmp图片怎么转换成ppm,[转载]图片解析 ppm图片bmp图片格式

    最近用qt编写两个小程序,一个是解析ppm格式的图片,一个是将ppm格式的图片转存为bmp格式图片 首先要明确ppm和bmp格式图片的头 ppm:头部分由三部分组成,这三部分由回车或换行分割,但PPM ...

  6. BMP图片格式分析(超详细)

    文章目录 前言 一.BMP格式概览 二.实战分析bmp图片数据 前言 对学习C++感兴趣的可以看看这篇文章哦:C/C++教程 BMP图片大家见的应该也比较多,它是一种非常基本的图片格式 因为最近对C+ ...

  7. BMP图片格式详细解析--以256色为例还原256色BMP图像数据

    256色bmp图像还原记录: 通过分析bmp图片的格式,可以完成BMP图片的打开和保存 一.bmp格式: 典型的 BMP 图像文件由四部分组成: 1 . 位图文件头数据结构 ,它包含 BMP 图像文件 ...

  8. BMP图片格式详细解析--以256色为例

    通过分析bmp图片的格式,可以完成BMP图片的打开和保存 一.bmp格式: 典型的BMP 图像文件由四部分组成: 1 .位图文件头数据结构,它包含BMP 图像文件的类型.显示内容等信息: 2 .位图信 ...

  9. bmp图片格式及读取

    C++读取bmp图片的例子 1 #include <windows.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 ...

  10. JPG PNG GIF BMP图片格式的区别

    类型 优点 缺点 应用场景 相同图片大小比较 BMP 无损压缩,图质最好 文件太大,不利于网络传输   152K GIF 动画存储格式 最多256色,画质差   53K PNG 可保存透明背景的图片 ...

最新文章

  1. 《失控玩家》爆火背后:什么才是拥抱人工智能的正确姿势?
  2. static_cast, dynamic_cast, const_cast学习和探讨
  3. [SDOI2013]森林(树上主席树+启发式合并+lca)
  4. 1 SAP DEBUG调试改表操作手册
  5. vue-cli构建的项目手动添加eslint配置
  6. cogs——2416. [HZOI 2016]公路修建
  7. 苹果手机显示iphone已停用连接itunes_iTunes备份道理我都懂,但我依然不想备份的?...
  8. vue插件开发练习--实用弹窗
  9. linux之ab测试
  10. Clouda框架环境搭建
  11. 房地产业务学习(04)-房企信息化:谁忽悠了谁?
  12. Tensorflow2.0使用CNN和爬虫做新闻分类
  13. html + js实现马赛克画板
  14. 无法定位程序输入点 getHostNameW 于动态链接库 WS2_32.dll
  15. IP地址和子网掩码的作用是什么
  16. linux绝育玩客云_玩客云绝育,不影响下载功能
  17. lua 16进制转10 10转16进制
  18. 如何清空MSMQ的队列消息
  19. 玩游戏计算机配置,玩大型游戏需要什么配置
  20. Outlook邮箱如何在手机上登录

热门文章

  1. Transition 总结
  2. java 二进制 base64编码_java自定义实现base64编码转换
  3. WORDPRESS优化技巧之CDN加速
  4. MAUI 跨平台应用开发实战
  5. windows xp 安装python3.4.4(xp最高支持到3.4.4,后续版本不支持)
  6. 如何删除GitHub中的所有提交历史记录?
  7. 简单病毒分析及手工查杀
  8. 电脑开机后过一会就关机自动重启
  9. 常用的《短信中心号码》收集
  10. 好奇心是怎么驱动成功的