日韩欧美视频一区-日韩欧美三区-日韩欧美群交P内射捆绑-日韩欧美精品有码在线播放免费-成人免费一区二区无码视频-成人免费一级毛片在线播放视频

樹人論文網(wǎng)一個專業(yè)的學(xué)術(shù)咨詢網(wǎng)站!!!
樹人論文網(wǎng)

VGA色彩編輯技術(shù)論文投稿發(fā)表網(wǎng)

來源: 樹人論文網(wǎng)發(fā)表時間:2013-09-05
簡要:RGB色彩混合模型應(yīng)用在VGA上可呈現(xiàn)64個輝度級,通過64種不同亮度的紅色、綠色和藍(lán)色疊加可產(chǎn)生出262144(64×64×64)種不同的色彩。在VGA的640×480×16模式下,因受到顯示存儲區(qū)的限制,VGA每次僅

  RGB色彩混合模型應(yīng)用在VGA上可呈現(xiàn)64個輝度級,通過64種不同亮度的紅色、綠色和藍(lán)色疊加可產(chǎn)生出262144(64×64×64)種不同的色彩。在VGA的640×480×16模式下,因受到顯示存儲區(qū)的限制,VGA每次僅能從262144種顏色中選出16種顏色同時使用。雖然可以通過對VGA色彩控制寄存器DAC的操作選取所需要的色彩,在262144種顏色中進行16種色彩交換,用理想的色調(diào)繪制較高質(zhì)量的圖形圖像,獲得如模擬光照,色彩的自然過度等特殊效果,但由于沒有現(xiàn)成的VGA色彩混合模型調(diào)色工具,因此對一般的用戶來說色彩的調(diào)配是很不方便的,用戶實際用到多數(shù)是VGA提供的16種缺省值色彩。本文給出了一個VGA色彩調(diào)配工具程序,使用本色彩調(diào)配工具提供的顏色編輯功能,可以方便的調(diào)試出所有的VGA模擬色彩。

  色彩調(diào)配工具提供了下述四方面功能。

  (1)顏色索引功能 本功能從色彩調(diào)配工具提供的調(diào)色板的16種顏色中每次選出一種顏色供用戶調(diào)配,同時提示出當(dāng)前被調(diào)配色彩中的RGB各分量值(輝度),RGB取值范圍是0到63。使用‘i’和‘s’鍵改變顏色索引號號,通過顏色索引號在調(diào)色板上選取各種需調(diào)配的顏色。

  (2)顏色調(diào)配功能 本功能在顏色選好后,對指定色號的顏色進行調(diào)配。使用‘1’和‘2’鍵增加和減少該顏色的紅色分量。使用‘3’和‘4’鍵增加和減少綠色分量,使用‘5’和‘6’鍵增加和減少藍(lán)色分量。在RGB分量值變化時,調(diào)配的顏色跟隨著變化,且RGB各分量值也顯示出來。調(diào)配中的顏色同時自動寫入用戶調(diào)色板。

  (3)顯示調(diào)色板功能 本功能顯示色彩調(diào)配工具提供的3個調(diào)色板。第一個是缺省值調(diào)色板,顯示16種標(biāo)準(zhǔn)顏色,使用‘d’鍵彈出。第二個是灰色調(diào)色板,顯示16種灰度的灰色,使用‘g’鍵彈出。第三個是用戶調(diào)色板,它的初始值是16種標(biāo)準(zhǔn)顏色,用戶使用顏色索引功能和顏色調(diào)配功能在它上面進行色彩編輯,編輯好的顏色的RGB值自動保存起來。使用‘u’鍵將用戶調(diào)色板彈出。

  (4)調(diào)色板打印功能 本功能將用戶編輯好的用戶調(diào)色板中的16種顏色的RGB值打印在屏幕上,供用戶記錄下來后在自己的應(yīng)用程序中使用。

  色彩調(diào)配工具在Turbo C和Borland C下運行,讀者可以單獨使用它,也可以把它改成函數(shù)加在應(yīng)用程序中。程序清單附后:

  #include

  #include

  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,0); bar(118,100,507,239);

  setfillstyle(SOLID-FILL,7); bar(120,103,509,237);

  setcolor(0), rectangle(122,105,507,235);

  sx=146,sy=138,wsx=20,wsy=80;

  settextstyle(3,0,1);

  outtextxy(250,105,title);

  settextstyle(2,0,5);

  outtextxy(sx,sy-15,string);

  sx1=sx-4,sy1=sy-4,sx2=sx+(16*(wsx+1))+4;sy2=

  sy+wsy+4;

  rectangle(sx1,sy1,sx2,sy2);

  for(t1=0;t1<16;t1++) {

  x1=sx,y1=sy,x2=wsx,y2=wsy;

  setfillstyle(SOLID-FILL,t1);

  bar(sx,sy,sx+wsx,sy+wsy);

  sx=sx+wsx+1;{

  setcolor(0);

  sx=146;idx-num=1;clr-idx=15;

  rectangle(sx,sy,sx2-4,sy2-4);

  rectangle(sx-1,sy-1,sx2-3,sy2-3);

  sx=285,sy=40,wsx=80,wsy=20;

  x1=sx,y1=sy,x2=wsx,y2=wsy;

  setfillstyle(SOLID-FILL,clr-idx);

  bar(sx,sy,sx+wsx,sy+wsy);

  red-vol=63;grn-vol=63;blu-vol=63;

  display-status();

  clr-bar-loop:

  key-num=getch();

  if(key-num==‘0’) return;

  switch(key-num){

  case `i′:clr-idx++;

  if(clr-idx>15) clr-idx=0;

  if(clr-idx<0) clr-idx=15;

  change-idx();break;

  case ‘s‘:clr-idx--;

  if(clr-idx>15) clr-idx=0;

  if(clr-idx<0) clr-idx=15;

  change-idx();break;

  case ‘1‘:rgb-flag=1;adj=0;

  change-rgb();break;

  case ‘2‘:rgb-flag=1;adj=1;

  change-rgb();break;

  case ‘3‘:rgb-flag=2;adj=0;

  change-rgb();break;

  case ‘4‘:rgb-flag=2;adj=1;

  change-rgb();break;

  case ‘5‘:rgb-flag=3,adj=0;

  change-rgb();break;

  case ‘6‘:rgb-flag=3;adj=1;

  change-rgb();break;

  case ‘d‘:reset-defaults();

  idx-num=1;reset-pattern();break;

  case ‘g‘:reset-grays();

  idx-num=2;reset-pattern();break;

  case ‘u‘:reset-user();

  idx-num=3;reset-pattern();break;

  case ‘p‘:print-user();break;}

  goto clr-bar-loop;}

  display-status(){

  setcolor(7);

  row=1;col=15;

  set=cursor(row,col);

  printf(“Index: %2d”, clr-idx);

  set-cursor(row+1,col);

  printf(“Red : %d”, red-vol);

  set-cursor(row+2,col);

  printf(“Green:%d”,grn-vol);

  set-cursor(row+3,col);

  printf(“Blue :%d”,blu-vol);

  return;}

  adjust-color(){

  switch(rgb-flag){

  case 1:

  if(adj==0) red-vol++;

  if(adj==1) red-vol--;

  if(red-vol>63) red-vol=63;

  if(red-vol<0) red-vol=0;

  break;

  case 2:

  if(adj==0) grn-vol++;

  if(adj==1) grn-vol--;

  if(grn-vol>63) grn-vol=63;

  if(grn-vol<0) grn-vol=0);

  break;

  case 3:

  if(adj==0) blu-vol++;

  if(adj==1) blu-vol--;

  if(blu-vol>63) blu-vol=63;

  if(blu-vol<0) blu-vol=0;

  break;}

  return;}

  write-rgb(clr,red-vol,grn-vol,blu-vol){

  switch(clr){

  case 6: clr=20;break;

  case 8: clr=20;break;

  case 9: clr=57;break;

  case 10: clr=58;break;

  case 11: clr=59;break;

  case 12: clr=60;break;

  case 13: clr=61;break;

  case 14: clr=62;break;

  case 15: clr=63;break;

  default:break;}

  regs.h.ah=0x10;

  regs.h.al=0x10;

  regs.x.bx=clr;

  regs.h.ch=grn-vol;

  regs.h.cl=blu-vol;

  regs.h.dh=red-vol;

  int86(0x10,®s,®s);

  return;}

  set-index(){

  switch(idx-num){

  case 1:red-vol=vga-default[clr-idx][0];

  grn-vol=vga-default[clr-idx][1];

  blu-vol=vga-default[clr-idx][2];break;

  case 2:red-vol=vga-gray[clr-idx][0];

  grn-vol=vga-gray[clr-idx][1];

  blu-vol=vga-gray[clr-idx][2];break;

  case 3:red-vol=vga-user[clr-idx][0];

  grn-vol=vga-user[clr-idx][1];

  blu-vol=vga-user[clr-idx][2];break;}

  return;}

  reset-defaults(){

  for(t1=0; t1<16; t1++){

  clr-idx=t1;

  red-vol=vga-default[t1][0];

  grn-vol=vga-default[t1][1];

  blu-vol=vga-default[t1][2];

  write-rgb(clr-idx,red-vol,grn-vol,blu-vol);}

  t1=15; clr-idx=t1;

  display-status();return;}

  reset-grays(){

  for(t1=0;t1<16;t1++){

  clr-idx=t1;

  red-vol=vga-gray[t1][0];

  grn-vol=vga-gray[t1][1];

  blu-vol=vga-gray[t1][2];

  write-rgb(clr-idx,red-vol,grn-vol,blu-vol);}

  t1=15;clr-idx=t1;

  display-status();return;}

  reset-user(){

  for(t1=0;t1<16;t1++){

  clr-idx=t1;

  red-vol=vga-user[t1][0];

  grn-vol=vga-user[t1][1];

  blu-vol=vga-user[t1][2];

  write-rgb(clr-idx,red-vol,grn-vol,blu-vol);}

  R>t1=15;clr-idx=t1;

  display-status();return;}

  store-user(){

  vga-user[clr-idx][0]=red-vol;

  vga-user[clr-idx][1]=grn-vol;

  vga-user[clr-idx][2]=blu-vol;

  return;}

  print-user(){

  row=16;col=15;

  set-cursor(row,col);

  printf(“RGB value:”);

  set-cursor(row+1,col);

  printf(“Index:”);

  for(t1=0;t1<16;t1++) printf(“%2d,”,t1);

  set-cursor(row+2,col);

  printf(“Red: ”);

  for(t1=0;t1<16;t1++) printf(“%2d,”,vga-user[t1][0]);

  set-cursor(row+3,col);

  printf(“Green:”);

  for(t1=0;t1<16;t1++) printf(“%2d,”,vga-user[t1][1]);

  set-cursor(row+4,col);

  printf(“Blue:”);

  for(t1=0;t1<16;t1++) printf(“%2d,”,vga-user[t1][2]);

  return;}

  change-idx(){

  set-index();display-status();

  setfillstyle(SOLID-FILL,clr-idx);

  bar(sx,sy,sx+wsx,sy+wsy);

  return;}

  change-rgb(){

  adjust-color();display-status();

  write-rgb(clr-idx,red-vol,grn-vol,blu-vol);

  store-user();

  return;}

  reset-pattern(){

  display-status();

  setfillstyle(SOLID-FILL,clr-idx);

  bar(x1,y1,x1+x2,y1+y2);

  return:}

  set-cursor(x,y){

  regs.h.ah=0x02,regs.h.bh=0;

  regs.h.dh=x,regs.h.dl=y;

  int86(0x10,®s,®s);

  return;}

主站蜘蛛池模板: 美女张开让男生桶 | 久久精品午夜一区二区福利 | 俄罗斯freeⅹ性欧美 | 国产女人喷潮视频免费 | 在线视频 国产 日韩 欧美 | 樱桃视频高清免费观看在线播放 | 啊…嗯啊好深男男高h文总受 | 在线播放日韩欧美亚洲日本 | 尤蜜网站在线进入免费 | 青青草偷拍国产亚洲欧洲 | 恋夜影院支持安卓视频美女 | 亚洲这里只有精品 | 亚洲乱码国产乱码精品精98 | 国产精品人妻无码久久久蜜桃 | 少妇连续高潮抽搐痉挛昏厥 | 日日日夜夜在线视频 | 亚洲高清在线天堂精品 | 青青久久网 | 在线视频 日韩视频二区 | 久青草国产观看在线视频 | 午夜在线观看免费观看 视频 | 亚洲中文字幕在线第六区 | 国产成人高清精品免费5388密 | 久久久久国产一级毛片高清片 | 永久免费观看视频 | 天天拍拍国产在线视频 | 亚洲精品偷拍影视在线观看 | 日本吃孕妇奶水免费观看 | 亚洲国产精品久久人人爱 | 国偷自产视频一区二区久 | 99久久夜色精品国产亚洲AV卜 | 久久秋霞理伦片 | 亚洲精品不卡视频 | 免费精品一区二区三区在线观看 | 一色屋精品亚洲香蕉网站 | 亚洲 无码 在线 专区 | 97精品国产高清在线看入口 | 一级毛片西西人体44rt高清 | 国产毛A片啊久久久久久A | 小莹的性荡生活45章 | 国产亚洲精品久久久999蜜臀 |