第一章 图像简介 1
1.1 图像文件的工作原理 2
1.1.1 几点说明 4
1.2 C编程的几点说明 5
1.2.1 C语言编程风格 6
1.2.2 存贮模式和其他一些低层内容 7
1.3 汇编语言的几点说明 9
1.3.1 汇编语言和编译程序的约定 11
1.3.2 栈的处理 11
1.3.3 代码模块链接 16
1.3.4 汇编语言子程序的排错 17
第二章 MacPaint文件 19
2.1 头 20
2.2 图片解包 23
2.3 整幅图像的解包 26
2.3.1 EGA卡上的MacPaint文件 31
2.3.2 再谈解包 33
2.4 图像打包 35
2.4.1 头结构 40
第三章 GEM/IMG文件 43
3.1 IMG文件的解码 44
3.1.1 解码程序 47
3.1.2 较大的图片 57
3.1.3 翻阅大图片 58
3.2 图像打包 66
3.3 有关格式转换问题 73
第四章 PC Paintbrush文件 74
4.1 单色PCX文件 74
4.1.1 图像数据解包 76
4.1.2 图像数据打包 82
4.2 十六色图像 87
4.2.1 颜色及颜色显示 88
4.2.2 调色板 89
4.2.3 色板 89
4.2.4 彩色PCX文件 92
4.3 256色PCX格式 98
4.3.1 大调色板 98
4.3.2 PCX256色扩展 99
4.4 PCX文件的移植性 103
第五章 GIF文件解码 104
5.1 基本的压缩 105
5.1.1 GIF文件头 105
5.2 LZW压缩 110
5.3 LZW反压缩 113
5.4 GIF文件解码程序 113
5.4.1 汇编语言模块 119
5.4.2 VGA解码程序 137
第六章 GIF文件编码 141
6.1 二进制图像 141
6.1.1 头的形成 145
6.1.2 图像压缩 145
第七章 TIFF文件 160
7.1 标记 160
7.1.1 头和目录 162
7.1.2 TIFF数据的说明 164
7.1.3 标记的内容 165
7.1.4 图像编码及存贮 166
7.2 一个TIFF文件显示程序 167
7.2.1 排错与预映 180
7.3 彩色TIFF文件 182
7.4 TIFF文件的打包 184
第八章 高速单色显示驱动程序 190
8.1 单色显示卡 190
8.1.1 直线写到什么地方去了 191
8.1.2 行起始地址表 193
8.1.3 线性显示内存 193
8.1.4 编写单色超级VGA卡的驱动程序 194
8.1.5 支持多种显示类型 195
8.2 编写驱动程序 196
8.3 C语言调用程序 203
8.4 Hercules卡的特点 210
8.5 改变模式 217
8.5.1 C语言模式切换程序 217
8.5.2 汇编语言编写方式切换程序 222
8.6 视频硬件检测 225
8.7 独立的模式切换程序 229
第九章 高速彩色显示驱动程序 231
9.1 调色板的重访问 231
9.2 EGA显示 232
9.2.1 EGA卡的驱动程序 233
9.2.2 行的位转换 245
9.3 VGA显示 246
9.3.1 16色VGA显示 257
9.4 编写彩色超级VGA卡驱动程序 266
9.4.1 Paradise超级VGA卡驱动程序 267
第十章 PostScript文件 276
10.1 三种基本打印机的类型 276
10.1.1 点阵打印机 276
10.1.2 激光打印机 280
10.1.3 PostScript打印机 284
10.2 用黑白打印机打印彩色图像 285
10.2.1 EPS预映 292
10.2.2 LaserJet打印机的半色调 303
10.2.3 网版和半色调 303
10.3 图形分类 303
第十一章 抖动 323
11.1 抖动的基本概念 323
11.1.1 抖动的方法 325
11.1.2 痕迹与误差 327
11.1.3 抖动算法 328
11.1.4 测试文件生成器 330
11.2 抖动的大小 332
11.3 抖动扩展的图像 344
11.3.1 扩充内存 346
11.3.2 扩展内存 347
11.3.3 虚存 348
11.3.4 抖动大的文件 348
11.3.5 和扩充内存的接口 348
11.3.6 和扩展内存的接口 354
11.3.7 使用虚存 359
11.4 扩展抖动程序 359
11.5 进一步的抖动 376
第十二章 格式转换 377
12.1 单色文件格式转换程序 377
12.1.1 MacPaint文件转换程序 378
12.2 彩色文件转换程序 392
12.2.1 GIF至PCX的转换 392
12.2.2 PCX至GIF的转换 399
12.3 直接的图像转换 404