- 相關(guān)推薦
VGA色彩編輯技術(shù)
RGB色彩混合模型應(yīng)用在VGA上可呈現(xiàn)64個(gè)輝度級(jí),通過(guò)64種不同亮度的紅色、綠色和藍(lán)色疊加可產(chǎn)生出262144(64×64×64)種不同的色彩。在VGA的640×480×16模式下,因受到顯示存儲(chǔ)區(qū)的限制,VGA每次僅能從262144種顏色中選出16種顏色同時(shí)使用。雖然可以通過(guò)對(duì)VGA色彩控制寄存器DAC的操作選取所需要的色彩,在262144種顏色中進(jìn)行16種色彩交換,用理想的色調(diào)繪制較高質(zhì)量的圖形圖像,獲得如模擬光照,色彩的自然過(guò)度等特殊效果,但由于沒(méi)有現(xiàn)成的VGA色彩混合模型調(diào)色工具,因此對(duì)一般的用戶來(lái)說(shuō)色彩的調(diào)配是很不方便的,用戶實(shí)際用到多數(shù)是VGA提供的16種缺省值色彩。本文給出了一個(gè)VGA色彩調(diào)配工具程序,使用本色彩調(diào)配工具提供的顏色編輯功能,可以方便的調(diào)試出所有的VGA模擬色彩。色彩調(diào)配工具提供了下述四方面功能。
(1)顏色索引功能 本功能從色彩調(diào)配工具提供的調(diào)色板的16種顏色中每次選出一種顏色供用戶調(diào)配,同時(shí)提示出當(dāng)前被調(diào)配色彩中的RGB各分量值(輝度),RGB取值范圍是0到63。使用‘i’和‘s’鍵改變顏色索引號(hào)號(hào),通過(guò)顏色索引號(hào)在調(diào)色板上選取各種需調(diào)配的顏色。
(2)顏色調(diào)配功能 本功能在顏色選好后,對(duì)指定色號(hào)的顏色進(jìn)行調(diào)配。使用‘1’和‘2’鍵增加和減少該顏色的紅色分量。使用‘3’和‘4’鍵增加和減少綠色分量,使用‘5’和‘6’鍵增加和減少藍(lán)色分量。在RGB分量值變化時(shí),調(diào)配的顏色跟隨著變化,且RGB各分量值也顯示出來(lái)。調(diào)配中的顏色同時(shí)自動(dòng)寫(xiě)入用戶調(diào)色板。
(3)顯示調(diào)色板功能 本功能顯示色彩調(diào)配工具提供的3個(gè)調(diào)色板。第一個(gè)是缺省值調(diào)色板,顯示16種標(biāo)準(zhǔn)顏色,使用‘d’鍵彈出。第二個(gè)是灰色調(diào)色板,顯示16種灰度的灰色,使用‘g’鍵彈出。第三個(gè)是用戶調(diào)色板,它的初始值是16種標(biāo)準(zhǔn)顏色,用戶使用顏色索引功能和顏色調(diào)配功能在它上面進(jìn)行色彩編輯,編輯好的顏色的RGB值自動(dòng)保存起來(lái)。使用‘u’鍵將用戶調(diào)色板彈出。
(4)調(diào)色板打印功能 本功能將用戶編輯好的用戶調(diào)色板中的16種顏色的RGB值打印在屏幕上,供用戶記錄下來(lái)后在自己的應(yīng)用程序中使用。
色彩調(diào)配工具在Turbo C和Borland C下運(yùn)行,讀者可以單獨(dú)使用它,也可以把它改成函數(shù)加在應(yīng)用程序中。程序清單附后:
#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]
【VGA色彩編輯技術(shù)】相關(guān)文章:
多波束測(cè)深的異常數(shù)據(jù)編輯技術(shù)和實(shí)現(xiàn)04-27
多波束測(cè)深的異常數(shù)據(jù)編輯技術(shù)和實(shí)現(xiàn)04-30
多波束測(cè)深的異常數(shù)據(jù)編輯技術(shù)和實(shí)現(xiàn)05-02
色彩04-28
色彩04-29
色彩04-29
編輯04-30
李大釗的編輯活動(dòng)與編輯思想04-29