unsined far imagesize(int xl,int yl,int x2,int y2); 这三个函数用于将屏幕上的图像复制到内存,然后再将内存中的图像送回到 屏幕上。首先通过函数imagesize()测试要保存左上角为(xl,yl), 右上角为(x2, y2)的图形屏幕区域内的全部内容需多少个字节, 然后再给mapbuf 分配一个所测 数字节内存空间的指针。通过调用getimage()函数就可将该区域内的图像保存在 内存中, 需要时可用putimage()函数将该图像输出到左上角为点(x, y)的位置上, 其中getimage()函数中的参数op规定如何释放内存中图像。 关于这个参数的定义参见表8。
表8. putimage()函数中的op值 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号常数 数值 含 义 ────────────────────────── COPY_PUT 0 复制 XOR_PUT 1 与屏幕图像异或的复制 OR_PUT 2 与屏幕图像或后复制 AND_PUT 3 与屏幕图像与后复制 NOT_PUT 4 复制反像的图形 ━━━━━━━━━━━━━━━━━━━━━━━━━━
对于imagesize()函数, 只能返回字节数小于64K字节的图像区域, 否则将会 出错, 出错时返回-1。 本节介绍的函数在图像动画处理、菜单设计技巧中非常有用。
例13: 下面程序模拟两个小球动态碰撞过程。 #include #include int main() { int i, gdriver, gmode, size; void *buf; gdriver=DETECT; initgraph(&gdriver, &gmode, ""); setbkcolor(BLUE); cleardevice(); setcolor(LIGHTRED); setlinestyle(0,0,1); setfillstyle(1, 10); circle(100, 200, 30); floodfill(100, 200, 12); size=imagesize(69, 169, 131, 231);
上一篇:C++ 代码优化
下一篇:C语言图形处理
|