图像处理(Image Processing) ---------- PCX 解压缩 (C#实现) )

本文介绍了PCX图像格式的基本结构和RLE压缩法,并详细讲解了如何使用C#来读取和解码PCX图像。内容包括头文件解析、位图数据的RLE解压以及调色盘的处理。特别提到了像素位、彩色平面数对图像类型的影响,以及在解码过程中处理大于192像素值的方法。
摘要由CSDN通过智能技术生成
  • PCX是一种古老的 图像格式,现在已经被jpeg、png、gif等新生格式替代。但是作为图像处理新手的话,把它拿来练练手还很好的选择。
  • PCX文档,由头文档、位图数据 (bitmap)、256色调色盘三部分构成。压缩采用的是RLE(Run Length Encoding)编码法,bitmap数据存的是已经压缩过的数据,且属于无损压缩。要读PCX文档就要进行RLE解码。
  • 头文档:共有 128 bytes,要解码PCX,解读头文档非常重要。
    • PCX头文件,最重要的是解读这几个部分:
    1. 版本号,若为5,通常在文件最末尾都有一个256色的调色盘,即文件的最后的768 bytes为调色盘数据,按顺序以R/G/B,每三个bytes构成一个调色盘的颜色,通常倒数的第769个bytes会是一个鉴定位,值一般为12,表示后面有256色调色盘。另外pcx档是支持24位全真彩的。
    2. 像素位 (第3个字节) 和 彩色平面数 (第65个字节) ,决定了图像的类别。如色彩平面数大于1 ,那就没有使用调色盘。例如:像素位:8 ,平面数:1 ,为256色图像,使用了末尾调色盘。像素位:8 ,平面数:3 ,为24为全彩图像,没有使用调试盘。
    3. 图像大小(第4个字节),可以得到整个图像的像素个数还有宽、高。要注意的是第一个像素是(0,0),所以算真实个数(宽、高)时:(Xmax - Xmin)+1,(Ymax - Ymin)+1。 

 

起始字节

字节数

    内容

                                  解释

0

1

Zsoft标志

为10(0x0a),即为Zsoft PCX文件

1

1

版本号

0:PC Paintbrush 2.51,带调色板。 5:支持24位真彩.

2

1

编码

1:RLE编码法

3

1

位/像素

每个平面的像素有几位,可能值为1、2,、4或8

4

8

图像大小

图像边界极限,一边两字节,按顺序为:

Xmin、Ymin、Xmax、Ymax,以像素为单位。

12

2

水平分辨率

打印时,X方向的每英寸像素点的点数

14

2

垂直分辨率

打印时,Y方向的每英寸像素点的点数

16

48

文件头调色板

16色的“EGA/VGA”头调色板

64

1

保留字节

Zsoft保留,为0

65

1

平面

彩色平面数。PCX图像可以是单彩色,也可以具有多个彩色平面,平面数可为:1、2、3、4

66

2

每行字节数

每个色彩平面的每行字节数,即解压后图像每一行所占的字节数,总是偶数。

68

2

调色板解释

1:彩色

2:灰度

70

2

视频屏幕大小X

视频输出的水平像素数-1

72

2

视频屏幕大小Y

视频输出的垂直像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值