文档详情

windows程序设计(C语言版)第15章-与装置无关的点阵图.pdf

发布:2017-08-28约15.24万字共90页下载文档
文本预览下载声明
Programming Windows 程式开发设计指南(Windows95 程序设计 第五版) 第十五章 与装置无关的点阵图 在上一章我们了解到 Windows GDI 点阵图物件 (也称为与装置相关的点阵 图,或DDB)有许多程式设计用途。但是我并没有展示把这些点阵图储存到磁片 档案或把它们载入记忆体的方法。这是以前在 Windows 中使用的方法,现在根 本不用了。因为点阵图的 元格式相当依赖於设备,所以 DDB 不适用於图像交 换。DDB 内没有色彩对照表来指定点阵图的 与色彩之间的联系。DDB 只有在 Windows 开机到关机的生命期内被建立和清除时才有意义。 在Windows 3.0 中发表了与装置无关的点阵图(DIB),提供了适用於交换的 图像档案格式。正如您所知的,像.GIF 或.JPEG 之类的其他图像档案格式在 Internet 上比DIB 档案更常见。这主要是因为.GIF 和.JPEG 格式进行了压缩, 明显地减少了下载的时间。尽管有一个用於DIB 的压缩方案,但极少使用。DIB 内的点阵图几乎 没有被压缩。如果您想在程式中操作点阵图,这实际上是一 个优点。DIB 不像.GIF 和.JPEG 档案,Windows API 直接支援DIB。如果在记忆 体中有DIB,您就可以提供指 该DIB 的指标作为某些函式的参数,来显示DIB 或把DIB 转化为DDB。 DIB 档案格式 有意思的是,DIB 格式并不是源自於Windows。它首先定义在 OS/2 的 1.1 版中,该作业系统最初由IBM 和Microsoft 在八十年代中期开始开发。OS/2 1.1 在 1988 年发布,并且是第一个包含了类似 Windows 的图形使用者介面的OS/2 版本,该图形使用者介面被称之为 「Presentation Manager (PM )」。 「Presentation Manager」包含了定义点阵图格式的 「图形程式介面」 (GPI)。 然後在Windows 3.0 中 (发布於1990)使用了OS/2 点阵图格式,这时称之 为DIB。Windows 3.0 也包含了原始DIB 格式的变体,并在Windows 下成为标准。 在Windows 95 (以及Windows NT 4.0)和Windows 98 (以及Windows NT 5.0) 下也定义了一些其他的增强能力,我会在本章讨论它们。 DIB 首先作为一种档案格式,它的副档名为.BMP,在极少情况下为.DIB。 Windows 应用程式使用的点阵图图像被当做DIB 档案建立,并作为唯读 源储存 在程式的可执行档案中。图示和滑鼠游标也是形式稍有不同的DIB 档案。 程式能将DIB 档案减去前14 个 元组载入连续的记忆体块中。这时就可以 称它为 「packed DIB (packed-DIB)格式的点阵图」。在 Windows 下执行的应 用程式能使用packed DIB 格式,通过Windows 剪贴簿来交换图像或建立画刷。 第 669 页 Programming Windows 程式开发设计指南(Windows95 程序设计 第五版) 程式也可以完全存取DIB 的内容并以任意方式修改DIB。 程式也能在记忆体中建立自己的 DIB 然後把它们存入档案。程式使用 GDI 函式呼叫就能 「绘制」这些 DIB 内的图像,也能在程序中利用别的记忆体 DIB 直接设定和操作图素 元。 在记忆体中载入了 DIB 後,程式也能通过几个Windows API 函式呼叫来使 用DIB 资料,我将在本章中讨论有关内容。与DIB 相关的API 呼叫是很少的, 并且主要与视讯显示器或印表机页面上显示DIB 相关,还与转换 GDI 点阵图物 件有关。 除了这些内容以外,还有许多应用程式需要完成的 DIB 任务,而这些任务 Windows 作业系统并不支援。例如,程式可能存取了24 元DIB 并且想把它转 化为带有最佳化的256 色调色盘的8 元DIB,而Windows 不会为您执行这些操 作。但是在本章和下一章将 您显示Windows API 之外的操作DIB 的方式。 OS/2 样式的DIB 先不要陷入太多的细节,让我们看一下与首先在OS/2 1.1 中出
显示全部
相似文档