i社区用户: 密码:
搜索:
首页| 资讯| 信息化| 产品| 专题| 创业| 技术天地| 企业中心| 企业论坛| 职场| 周报全文| 商城| 市场
会展| Blog| i社区| 社区联盟| RSS| 电子杂志| 发行| 直播| IT两会| i| 下载| 上网导航| CIO俱乐部

16色PCX图像文件的恢复

杨军

PCX格式是一种标准的文件压缩格式,许多图像编辑软件都能处理这种
格式,如:CoreIDraw、Microgufx、Designe和P
C Paint brush等等,如果能在自己的应用程序中应用它,则可
以使自己的用户界面更加友好。《计算机用户》1993年第七期上“16/
256色PCX文件的解码与恢复”一文,介绍了256色PCX图像文件的
恢复,对16色只是提了一下,而事实上16色PCX文件并不像256色图
像文件那么简单。本文将介绍用TURBO C和TURBO PASCAL
实现PCX图像文件的恢复方法。
首先,不论是单色、16色还是256色,PCX图像都有一个128字
节的文件头,在此文件头中包含了PCX文件的标志,及有关图像大小、颜色
等信息(见表)。我们可以用C的结构或PASCAL的记录来存取各项内容:
紧接于文件头后的为文件体、存储压缩后的图像数据,对于256色PC
X文件则在文件后附有一个768字节的彩色表,这可以从文件尾起倒数第7
69个字节来识别,如果它为0XOC则为256色PCX文件,否则为16
色或单色。
---------------------------------- 偏移量
字节数 含义
1H 1 总是0Xcam为PCX文件的标志
2H 1 表示由那个版本的Pcprintbrush生成
3H 1 总为1表示采用“同值”长度编码
4H 1 每个像素所占位数
5H 8 右上、右下角坐标
13H 4 所用的分辨率
17H 48 彩色表项
65H 1 保留
66H 1 位平面数
67H 1 解码后的一行中一个位平面所占字节数
68H 2 表示采用灰度还是彩色调色板
70H 58 ---
----------------------------------
文件头内容
PCX文件体是采用“同值”长度编码技术压缩的,其文件数据由一系列
索引数据和图像数据所组成。如果索引数据的最高位是“11”,则该字节中
低六位表示图像文件中的下~字节的重复次数,否则该字节就是图像数据,是
原样写入文件的。这里值得注意的是:16色PCX文件是以显示区四个位平
面的对应行按0、1、2、3的顺序排列,然后一行320个字节放在一起压
缩的,也就说这320个字节中的“同值”数据会被压缩在一起,但上一行的
末尾如果和下一行的头是“同值”的并不压缩在一起,则它一次只压缩一行,
这一点并不像有的资料中所介绍的那样,一个位平面中的一行80个字节放在
一起压缩。文件头中第67个字节的内容表示解码后一行中一个位平面所占字
节数,也就是单色PCX文件解码后一行的字节数。仔细分析一下所附程序的
readpcxltine过程就会理解这一点。
要把解码后的图像数据显示在屏幕上,可以采用TURBO C和TUR
BO PASCAL的putimge函数,这个函数将缓冲区的位图像放在
屏幕上指定的位置。该缓冲区的前四个字节为位图像的宽和高,其位图像本身
与PCX文件解码后是相似的。不同的是位平面的放置位置不同。
解码后的PCX的一行的映象如图:
--------------------------
0page 1page 2page 3page 一行
--------------------------
0 80 160 240 320
而putimge的缓冲区;位图像映像应为:
--------------------------
3page 2page 1page 0page 一行
--------------------------
0 80 160 240 320
这就是所附程序的readpcxline过程中变量的作用--把解码
的图像数据按putimge缓冲区的格式存放。
最后,我们要再现原图像的色彩,还要按图像文件中的彩色表重设调色板
。这是由于很多图像均未采用缺省调色板。
16色PCX文件的文件头中第17个字节起48个字节内容为其所采用
的彩色表,它是合成一种颜色的红绿蓝百分比,一种颜色由三个字节的值合成
,16种颜色共48个字节。我们要把这些值对应合成16个颜色值,然后赋
给显示卡的16个调色板寄存器,这样就可以使图像恢复原有的色彩。
下面是一个用TURBO PASCAC6.0编写的解码16色PCX
图像文件的程序。

(计算机世界报 1994年 第8期)



周报全文频道联系方式:010-68130909
【关于我们】  【广告服务】  【周报发行】  【投稿指南】  【投稿声明】  【联系方式】  【法律声明】
  【媒体手册】  【编读往来】  
Copyright© ccw.com.cn,All rights reserved
中国计算机世界出版服务公司版权所有