PPM / PGM / PBM 图像文件格式


声明:引用请注明出处http://blog.csdn.net/lg1259156776/


说明:在进行图像压缩后传输,然后解压缩显示的过程中,通常会用到PPM / PGM / PBM 图像文件格式来对解压后的图像像素值进行存储,因为没有进行压缩,所以不丢失信息,但同时也文件比较大。本文就是对这种图像文件格式进行介绍。


总论

PPM(Portable PixMap)是portable像素图片,是由netpbm项目定义的一系列的portable图片格式中的一个。这些图片格式都相对比较容易处理,跟平台无关,所以称之为portable,就是比较直接的图片格式。比如PPM,其实就是把每一个点的RGB分别保存起来。所以,PPM格式的文件是没有压缩的,相对比较大,但是由于图片格式简单,一般作为图片处理的中间文件(不会丢失文件信息),或者作为简单的图片格式保存。

格式分析

netpbm的几种图片格式是通过其表示的颜色类型来区别的,PBM是单色图,只有黑色和白色,PGM是灰度图片PPM是代表完整的RGB颜色的图片,有时也统称为PNM格式。

(1) 文件头

文件头由三个部分组成:这几个部分之间用回车或换行分隔(但是PPM标准中要求是空格)。

第一部分是文件magic number
每一个netpbm图片由两个字节的magic number (ASCII)组成,来标识文件的类型(PBM/PGM/PPM)以及文件的编码(ASCII或binary)。

  • P1  单色图  ASSII  PBM
  • P2  灰度图  ASSII  PGM
  • P3  像素图  ASSII  PPM
  • P4  单色图  二进制  PBM
  • P5  灰度图  二进制  PGM
  • P6  像素图  二进制  PPM

第二部分是图像宽度和高度(空格隔开),用ASCII表示。

第三部分是描述像素的最大颜色组成,允许描述超过一个字节(0-255)的颜色值。

另外,在上面的三个部分里面,都可以使用”#”插入注释,注释是#到行尾(回车或换行)部分。

(2) 图像数据部分

对于ASCII格式,就是按照RGB的顺序排列,以ASCII存储,并且,RGB中间用空格隔开,图片每一行用回车隔开。

对于binary格式,就是每一个像素点的RGB值分别顺序存储并且按二进制写入文件,没有任何分隔。

例子

PPM

例子1:
P6 1024 778 255

例子2:
P6
1024 778
255

例子3:

P6#PPM文件格式
1024 778#宽度和高度
255

通常的习惯,图象从上到下,从左到右被存储。色彩成分按照通常的红-绿-蓝顺序存储。

PGM

该格式文件存储灰度图形,也就是这里每个像素使用一个值来表示而不是3个(R,G,B)。同PPM唯一不同的是头部用P2和P5,分别表示用ASCII和字节码来表示数据。

例如:
P2
24 7
15

PBM

使用ASCII的0或1方式来表示数据,0表示白色,1表示黑色。与PPM、PGM不同的头部是少了第三行,因为第三行的最大色彩值在这个模式下已经没有意义了。

如下:

P1# PBM example
24 7


2015-10-15 艺少

转载于:https://www.cnblogs.com/huty/p/8519013.html

PPM / PGM / PBM 图像文件格式相关推荐

  1. PPM,PGM图片格式

    转自: PPM / PGM / PBM 图像文件格式 下面将详细介绍ppm文件 ppm文件是一种图像文件,有其自己的文件格式.ppm文件由两个部分组成:第一个部分是三行ASCII码,这个部分决定了图像 ...

  2. 图形图像文件格式分类

    图形图像文件大致上可以分为两大类:一类为位图文件:另一类称为描绘类.矢量 类或面向对象图形图像文件.前者以点阵形式描述图形图像,后者是以数学方法描 述的一种由几何元素组成的图形图像.一般说来,后者对图 ...

  3. 图像文件格式大全及代码检测方式

    类型 描述 检测方式 jpeg 用JFIF或者Exif格式保存的JPEG图片 第7到第10个字节是b'JFIF'或者b'Exif' png 可移植网络图形格式(Portable Network Gra ...

  4. Python PIL支持的图像文件格式

    Python PIL 支持的图像文件格式: BMP BUFR (identify only) CUR (read only) DCX (read only) EPS (write-only) FITS ...

  5. 计算机常用图像文件格式,常用的图像文件格式

    常用的图像文件格式介绍 常用的图像文件格式 图像的文件格式决定了图像数据的存储内容和存储方式,以及文件是否与一些应用程序兼容,另外还涉及到如何与其他程序交换数据等.我们现在来列举一些常用的图像文件格式 ...

  6. 【转】BMP图像文件格式

    5.1  BMP图像文件格式 BMP图像文件格式是游戏中常用的图像资源文件格式,BMP图像文件起源早,程序员对BMP都比较熟悉,再加上BMP格式简单,读取和写入非常容易实现,所以无论Windows的还 ...

  7. .net core image怎么保存_C# 将PDF转为多种Image图像文件格式(Png/Bmp/Emf/Tiff)

    PDF是一种在我们日常工作学习中最常用到的文档格式之一,但常常也会因为文档的不易编辑的特点,在遇到需要编辑PDF文档内容或者转换文件格式的情况时让人苦恼.通常对于开发者而言,可选择通过使用组件的方式来 ...

  8. winform中openfiledialog过滤压缩文件格式_5种最佳摄影师图像文件格式

    1. JPEG JPEG文件具有低.中.高三种质量级别.与高质量版本相比,低质量JPEG的压缩程度更高.如果需要高质量的图像,则需要选择压缩程度较小的JPEG选项. 何时使用JPEG图像格式: 具有许 ...

  9. [摘录]TGA图像文件格式资料

    TGA图像文件格式资料   发表日期:2007-01-18 作者:[转贴] 出处: 根据david mcduffe编写的TGA文件格式资料翻译而成 本文档是为满足许多对 TGA 图像格式的了解需要而创 ...

最新文章

  1. Linux非阻塞IO(八)使用epoll重新实现非阻塞的回射服务器
  2. csuoj 1350: To Add Which?
  3. 四川高职计算机二本线学校,全网首发!四川省本科二批次2019年对口高职投档录取线出炉...
  4. 《网络空间欺骗:构筑欺骗防御的科学基石》一1.1 主动网络空间防御中网络空间抵赖与欺骗的视图...
  5. Oracle执行外部文件:
  6. BTrace简介与使用说明
  7. php fpm 报错,PHP-FPM安装报错解决
  8. LINUX下载编译libyuv
  9. LaTeX的常用命令
  10. Windows10怎么样添加并设置为卓越性能模式
  11. 清明节到五一的加班感触
  12. Rope3d数据集分析
  13. Linux寻找history命令位置,使用history命令在Linux系统上找到最常用的命令
  14. 怎么找到电脑的打印机
  15. 粗略的了解Javascript
  16. 在Python里,用股票案例讲描述性统计分析方法(内容来自我的书)
  17. 圣斗士星矢重生服务器维护,11月26日全服停机维护公告
  18. stm32cube,hal库来实现PS2手柄数据发送
  19. Android系统学习(一)------编译系统Android7.0
  20. 方格1010+颠覆经典俄罗斯方块逻辑玩法的手游

热门文章

  1. 你知道Spring是怎么解析配置类的吗?
  2. 牛逼!Redis 的字符串是这样实现的…
  3. 单列索引和联合索引,有什么区别?
  4. 记一次被DDoS敲诈的历程
  5. for update引发的血案
  6. 跟面试官聊到JVM,他99%会让你谈谈这个问题!
  7. Kafka 压测:3 台廉价服务器竟支撑 200 万 TPS
  8. PaaS平台应用的12要素原则
  9. React 应用的性能优化思路
  10. 13. sizeof 和 strlen 的区别