实现图像特技显示的基本思路是将图像分成不同的小块,按一定的方向或次序、分阶段地显示或擦除图像块。其中的四个要点是:
(1)如何划分图像块;
(2)确定图像块的操作次序;
(3)显示或清除图像块;
(4)在两个图像块的操作之间延时。
特技显示的通用过程可描述如下:
获得DIB对应的DDB,设为pBitmap;
创建与显示设备上下文DC兼容的内存设备上下文MenDC;
将pBitmap选入MemDC;
在DC中选取DIB的调色板;
实现该调色板;
循环:对所有的图像块,按确定的操作次序用BitBlt函数将MemDC中的一个图像复制到DC中,或者在MemDC的指定区域画背景色矩形;
延时;
结束循环;
恢复MemDC(DDB和调色板);
删除MenDC。
特技清除的通用过程可描述如下:
创建颜色为指定背景色的画笔和画刷,在DC中选取刚创建的画笔和画刷;
循环:对所有的图像块区域,按确定的操作次序用Rectangle 在DC的指定区域画矩形;
延时;
结束循环;
恢复DC(画笔和画刷)。
本章小结:
》特技处理包括特技显示和特技清除;
》图像分块、确定块次序、按指定次序显示或清除图像块和延时是实现特技的基本要点;
》主要特技图像显示的算法,包括扫描、移动、百叶窗、栅条、马赛克、渐显与渐隐,以及透明显示等;
》将特技显示功能增加到CDib中,使其支持特技显示和清除操作。