<wbr id="ede8e"></wbr><bdo id="ede8e"><var id="ede8e"><optgroup id="ede8e"></optgroup></var></bdo>
    1. <sub id="ede8e"></sub>
    2. <sub id="ede8e"></sub>
    3. 18禁无遮挡啪啪无码网站,真人无码作爱免费视频,2018年亚洲欧美在线v,国产成人午夜一区二区三区 ,亚洲精品毛片一区二区,国产在线亚州精品内射,精品无码国产污污污免费,国内少妇人妻偷人精品
      首頁 > 文章中心 > 正文

      色彩編輯技術

      前言:本站為你精心整理了色彩編輯技術范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

      色彩編輯技術

      RGB色彩混合模型應用在VGA上可呈現64個輝度級,通過64種不同亮度的紅色、綠色和藍色疊加可產生出262144(64×64×64)種不同的色彩。在VGA的640×480×16模式下,因受到顯示存儲區的限制,VGA每次僅能從262144種顏色中選出16種顏色同時使用。雖然可以通過對VGA色彩控制寄存器DAC的操作選取所需要的色彩,在262144種顏色中進行16種色彩交換,用理想的色調繪制較高質量的圖形圖像,獲得如模擬光照,色彩的自然過度等特殊效果,但由于沒有現成的VGA色彩混合模型調色工具,因此對一般的用戶來說色彩的調配是很不方便的,用戶實際用到多數是VGA提供的16種缺省值色彩。本文給出了一個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值打印在屏幕上,供用戶記錄下來后在自己的應用程序中使用。

      色彩調配工具在TurboC和BorlandC下運行,讀者可以單獨使用它,也可以把它改成函數加在應用程序中。程序清單附后:

      #include<dos.h>

      #include<graphics.h>

      intadapter,mode;

      intscreen-x,screen-y;

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

      intred-vol,grn-vol,blu-vol,key-num,idx-num,row,col;

      intrgb-flag,adj,clr-idx;

      intvga-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};

      intvga-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};

      intvga-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};

      charstring[]="0123456789101112131415";

      chartitle[]="VGAcolorpattern";

      unionREGSregs;

      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;}

      gotoclr-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){

      case1:

      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;

      case2:

      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;

      case3:

      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){

      case6:clr=20;break;

      case8:clr=20;break;

      case9:clr=57;break;

      case10:clr=58;break;

      case11:clr=59;break;

      case12:clr=60;break;

      case13:clr=61;break;

      case14:clr=62;break;

      case15: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,&regs,&regs);

      return;}

      set-index(){

      switch(idx-num){

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

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

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

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

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

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

      case3: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);}

      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(“RGBvalue:”);

      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,&regs,&regs);

      return;}

      主站蜘蛛池模板: 国产精品任我爽爆在线播放6080 | 色99久久久久高潮综合影院| 天天躁日日躁狠狠躁2018| 亚洲中文字幕无码一区无广告| 国产裸体美女视频全黄| 亚洲国产精品综合久久网络| 国产伦精品一区二区三区| 亚洲av成人一区二区三区| 亚洲精品在线二区三区| 中文字幕在线精品国产| 国产精成人品日日拍夜夜 | 91中文字幕一区二区| 亚洲人成电影在线天堂色| 国产揄拍国产精品| 污网站在线观看视频| 国产精品论一区二区三区| 日本偷拍自影像视频久久| 中文字幕av国产精品| 久久精品夜夜夜夜夜久久| 久久se精品一区二区三区| аⅴ天堂中文在线网| 国产精品高清视亚洲中文| 人成午夜免费大片| 国产福利姬喷水福利在线观看| 正在播放肥臀熟妇在线视频| 青青草国产精品日韩欧美| 国产精品国产三级国产试看| 国产日韩一区二区在线| 四虎亚洲精品高清在线观看| 少妇真人直播免费视频| 精品自拍偷拍一区二区三区| 国产高清一区二区不卡| 亚洲精品色无码AV试看| 日日碰狠狠躁久久躁96avv| 熟女蜜臀av麻豆一区二区| 亚洲中文久久久精品无码| 欧美性XXXX极品HD欧美风情| 国外av片免费看一区二区三区| 日韩伦理片一区二区三区| 久久精品国产99国产精品严洲| 无码国内精品人妻少妇|