第16章 彩色图形屏幕处理

上传人:豆浆 文档编号:5983022 上传时间:2017-08-07 格式:PPT 页数:27 大小:249KB
返回 下载 相关 举报
第16章  彩色图形屏幕处理_第1页
第1页 / 共27页
第16章  彩色图形屏幕处理_第2页
第2页 / 共27页
第16章  彩色图形屏幕处理_第3页
第3页 / 共27页
第16章  彩色图形屏幕处理_第4页
第4页 / 共27页
第16章  彩色图形屏幕处理_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《第16章 彩色图形屏幕处理》由会员分享,可在线阅读,更多相关《第16章 彩色图形屏幕处理(27页珍藏版)》请在金锄头文库上搜索。

1、第16章 彩色/图形屏幕处理,16.1 文本模式 16.2 图形模式 16.3 设定图形模式及显示色彩,16.1 文 本 模 式,文本模式可以在屏幕上处理字母、数字和一些图形字符。对应屏幕上的每个字符位置有两个存储器字节,一个是被显示字符的ASCII码字节,一个是属性字节。,图16-1 彩色属性字节,在彩色文本模式下,彩色显示卡不提供加下划线的功能。彩色显示卡与单色显示卡相同,都能接受256个扩充的ASCII码字符集。属性字节对单色显示和彩色显示都是有效的,属性字节如图16-1所示,可以用来选择前景(显示的字符)和背景的颜色。每个字符可以选择16种颜色中的一种,这16种颜色由二进制的组合决定。

2、RGB这些字母分别各占用一个二进制位,各自代表彩色显示器的红、绿、蓝三色。BL(位7)表示闪烁,I(位3)表示亮度,闪烁和亮度只能用于前景。表16-1为彩色文本模式下16种颜色的组合。,彩色文本模式属性提供了前景和背景颜色的选择,每个被显示字符可以选择表16-1所示的16种颜色中的一种。屏幕的背景颜色选择表16-1中I为0的8种颜色之一。若前景和背景选择的颜色一样,显示出的字符就是看不见的。当选择其中的一种颜色并进行设定后,它将保持不变,直到另一种设定改变它。,表16-1 16种颜色的组合,显示屏幕的背景颜色只能是表16-1中I为0的8种颜色之一。位7可以使字符闪烁(BL=1)。 表16-2是

3、彩色文本模式下属性字节的典型组合。这些属性都适用于文本的单色及彩色显示。例如,在屏幕上以红底蓝字显示5个“*”。,MOV AH,09 ;INT 10H要求显示 MOV AL,* ;被显示的字符送AL MOV BH,0 ;0页 MOV BL,41H ;选择红底蓝字 MOV CX,05 ;重复次数 INT 10H ;BIOS中断调用,表16-2 彩色属性字节的典型组合,位,16.2 图 形 模 式,图形模式是以像素产生色彩的。彩色/图形显示卡有高、中、低三种分辨率,中等分辨率是彩色/图形的正常模式。中等分辨率彩色/图形模式,把屏幕分成320列、200行(320200=64000)个像素。每一个字节

4、可表示4个像素,编号为03。例如:,字节 :C1 C0 C1 C0 C1 C0 C1 C0 像素: 0 1 2 3依顺序为0像素3像素。,表示一个像素的两位有4种组合:00,01,10,11,分别表示4种不同的颜色。用00可以选为与背景相同的颜色,背景色可以是16种可用颜色中的一种。其余的三个像素,就必须从两个三色调色板中挑选出其中一个调色板来使用,如表16-3所示。在任何时刻,像素的颜色都只有四种颜色可供选择使用。这是因为表示每个像素的是两个二进制位,只有4种组合:00,01,10,11。,表16-3 调色板与像素,利用INT 10H可以选择调色板及背景颜色。如果你选用黄色(作为背景色)和调

5、色板0,则屏幕上各像素的颜色可为黄、绿、红及棕色。如果某一个字节内所包含的4个像素的值是10101010,那么4个像素全都显示红色。如果选用蓝色(作为背景色)和调色板1,则有效的4种颜色为蓝、青、紫和白色。如果某一个字节内所包含的4个像素的值是00011011,则会显示出蓝、青、紫和白色。,对于图形,首先利用INT 10H (AH=00)来设置图形模式。接着利用INT 10H可以进行像素的读、写、选择调色板及背景颜色等操作。其功能号分别为0BH、0CH、0DH,在INT 10H之前应将功能号送入AH,各功能如下: (1) AH=00:设置模式。 AH的值为00,AL的值为04,可以用来设定中等

6、分辨率彩色图形模式: MOV AH,00 ;设定模式为 MOV AL,04 ;320200分辨率 INT 10H,(2) AH=0BH:设置彩色调色板。 入口参数:AH=0BH,BH=00或BH=01。 BH=00,根据BL的值来选择背景色。BL的值取自16种颜色中的一种(015,或0F)。 BH=01,根据BL的值来选择调色板,可以是调色板0或者是调色板1。下面是一个例子:,MOV AH,0BH ;设定彩色MOV BH,01 ;选择调色板0MOV BL,00 ;绿、红、棕INT 10H ;BIOS中断调用,(3) AH=0CH:写像素。 入口参数:AH=0CH。该功能可以显示所选用的彩色(背

7、景和调色板)。假设屏幕设置为中分辨率(320200),行号值将被写入DX中(0199),列号将被写入CX中(0319)。而AL则为像素的彩色值(03)。例如:,MOV AH,0CH ;要求写出一点 MOV AL,像素的颜色 MOV CX,列号 MOV DX,行号 INT 10H ;BIOS中断调用,(4) AH=0DH:读像素。 此操作返回的是像素色彩的值,将其存放在AL中。 入口参数:AH=0DH,DX=行号,CX=列号。 返回参数:AL=像素值。,16.3 设定图形模式及显示色彩,例16.1 设置彩色/图形模式并显示屏幕的1/4彩条。 选择蓝色(作为背景色)和调色板0,然后每行显示一种颜色

8、,每4行重复一次,直到屏幕的1/4显示出彩条。,程序从0行0列开始画彩线,DX、CX寄存器用来保留行号和列号,在画每一条彩线时,DX(行号)保持不变,CX(列号)从0增加到200(屏幕列的1/2)。画下一条彩线时,DX加1,CX从0变化到200,而且每画一条水平彩线,BL中的像素值增1。第一条彩线是蓝色(背景色00),第二条彩线是绿色(01),第三条是红色(02),第四条是棕色(03),以后重复显示这四种颜色。不难想象,若要求画垂直线时,应先保持列号(CX)不变,而行号(DX)从0开始每次增加一个像素值,直到最后一个像素199。此程序使用了写像素点的功能0CH,这使得编写绘图程序变得简单了。,

9、此程序将使显示停留在图形模式。想要恢复原来的文本模式可使用下列两种方法: (1) 利用DOS MODE 命令(MODE CO80); (2) 利用你自己设计的COM文件,采用INT 10H 设定为文本模式即可。 程序清单如下:,CODESG SEGMENT PARA CODE ASSUME CS:CODESGSTART: MOV AH,00 ;设置图形方式 MOV AL,04H ;320200 CGA=4 INT 10H MOV AH,0BH ;设置背景色 MOV BH,00 ;取背景,MOV BL,01 ;蓝色 INT 10H MOV AH,0BH ;设置调色板 MOV BH,01 ;选择调

10、色板0 MOV BL,00 INT 10H MOV BX,00H ;设置初始颜色 MOV CX,00 ;列 MOV DX,00 ;行,A50: MOV AH,0CH ;写像素点 MOV AL,BL ;设置颜色 INT 10H INC CX ;列号加1 CMP CX,160 ;列号是否为160? JNE A50 ;不是,则循环 MOV CX,00 ;是,则重新设置列号 INC BL ;变换颜色,AND BL,03 INC DX ;行号加1 CMP DX,100 ;行号是否为100? JNE A50 ;不是,则循环 MOV AH,4CH INT 21H CODESG ENDS END START,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号