摘 要: | 在图形剪裁中首先要确定欲剪裁的图形区域,然后才谈得上“搬家”式存盘。习惯上编程者都是用光标键放(缩)一个颜色有别于底图的矩形框,当欲被剪裁的图形全部包容在框内时,矩形框左上角与右下角的坐标值就是剪裁范围。 本人在编制放(缩)矩形框程序时,摒弃了C语言的getimage()与putimage()函数而直接利用EGA/VGA图形适配卡上图形控制器中的两个寄存器(口地址为3ceh与3cfh),3ceh与3cfh寄存器是这样使用的:当向3ceh中送入索引号3时,表示选中数据移位功能,在此功能下对3cfh中送的单字节控制字既能表述锁存器中数据循环右移的位数,又能表述新写入的图形数据与锁存器内数据“与”、“或”、“异或”或“重写”的操作方式(比如,送0x18,是不移位只“异或”;送00是不移位仅“重写”)。因此利用这两个寄存器对编写控制矩形框放缩程序会带来很大的便利。 经实验,先分别向3ceh、3cfh口送入0x03与0x18后,再画一直线(或一圆)可使该直线(或圆)在底图上
|