推荐文档列表

VGA色彩编辑技术

时间:2021-10-01 09:52:51 计算机论文 我要投稿

VGA色彩编辑技术

RGB色彩混合模型应用在VGA上可呈现64个辉度级,通过64种不同亮度的红色、绿色和蓝色叠加可产生出262144(64×64×64)种不同的色彩。在VGA的640×480×16模式下,因受到显示存储区的限制,VGA每次仅能从262144种颜色中选出16种颜色同时使用。虽然可以通过对VGA色彩控制寄存器DAC的操作选取所需要的色彩,在262144种颜色中进行16种色彩交换,用理想的色调绘制较高质量的图形图像,获得如模拟光照,色彩的自然过度等特殊效果,但由于没有现成的VGA色彩混合模型调色工具,因此对一般的用户来说色彩的调配是很不方便的,用户实际用到多数是VGA提供的16种缺省值色彩。本文给出了一个VGA色彩调配工具程序,使用本色彩调配工具提供的颜色编辑功能,可以方便的调试出所有的VGA模拟色彩。

色彩调配工具提供了下述四方面功能。

VGA色彩编辑技术

(1)颜色索引功能 本功能从色彩调配工具提供的调色板的16种颜色中每次选出一种颜色供用户调配,同时提示出当前被调配色彩中的RGB各分量值(辉度),RGB取值范围是0到63。使用‘i’和‘s’键改变颜色索引号号,通过颜色索引号在调色板上选取各种需调配的颜色。

(2)颜色调配功能 本功能在颜色选好后,对指定色号的颜色进行调配。使用‘1’和‘2’键增加和减少该颜色的红色分量。使用‘3’和‘4’键增加和减少绿色分量,使用‘5’和‘6’键增加和减少蓝色分量。在RGB分量值变化时,调配的颜色跟随着变化,且RGB各分量值也显示出来。调配中的颜色同时自动写入用户调色板。

(3)显示调色板功能 本功能显示色彩调配工具提供的3个调色板。第一个是缺省值调色板,显示16种标准颜色,使用‘d’键弹出。第二个是灰色调色板,显示16种灰度的灰色,使用‘g’键弹出。第三个是用户调色板,它的初始值是16种标准颜色,用户使用颜色索引功能和颜色调配功能在它上面进行色彩编辑,编辑好的颜色的RGB值自动保存起来。使用‘u’键将用户调色板弹出。

(4)调色板打印功能 本功能将用户编辑好的用户调色板中的16种颜色的RGB值打印在屏幕上,供用户记录下来后在自己的应用程序中使用。

色彩调配工具在Turbo C和Borland C下运行,读者可以单独使用它,也可以把它改成函数加在应用程序中。程序清单附后:

#include <dos.h>

#include <graphics.h>

int adapter, mode;

int screen-x,screen-y;

int sx, sy, wsx, wsy, sx1, sy1, sx2, sy2, x1, y1, x2, y2, t1;

int red-vol, grn-vol, blu-vol, key-num, idx-num, row, col;

int rgb-flag, adj, clr-idx;

int vga-default[16][3]={

0,0,0,0,0,42,0,42,0,0,42,42,42,0,0,42,0,42,

42,21,0,42,42,42,21,21,21,21,21,63,0,63,0,

0,63,63,63,21,17,63,19,63,63,63,0,63,63,63};

int vga-gray[16][3]={

0,0,0,10,10,10,13,13,13,15,15,15,17,17,17,20,20,20,

24,24,24,28,28,28,33,33,33,37,37,37,41,41,41,

46,46,46,50,50,50,54,54,54,58,58,58,63,63,63};

int vga-user[16][3]={

0,0,0,0,0,42,0,42,0,0,42,42,42,0,0,42,0,42,

42,21,0,42,42,42,21,21,21,21,21,63,0,63,0,

0,63,63,63,21,17,63,19,63,63,63,0,63,63,63};

char string[]="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15";

char title[]="VGA color pattern";

union REGS regs;

main(){

detectgraph(&adapter,&mode);

initgraph(&adapter, &mode,“ ”);

setfillstyle(SOLID-FILL

[1] [2] [3] [4]