<del id="dhfrq"></del>

    1. <tr id="dhfrq"></tr>
      成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
      現在位置:范文先生網>理工論文>計算機論文>VGA色彩編輯技術

      VGA色彩編輯技術

      時間:2023-02-20 22:50:13 計算機論文 我要投稿
      • 相關推薦

      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模擬色彩。
      色彩調配工具提供了下述四方面功能。
      (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,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;
      cas

      VGA色彩編輯技術

      e '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,&regs,&regs);
      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);}
      t1=15;c

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


      【VGA色彩編輯技術】相關文章:

      VGA顯示與TV顯示的區別及轉換08-06

      基于FPGA的LCD&VGA控制器設計08-06

      高性能VGA芯片AD8367原理及應用08-06

      色彩08-16

      色彩08-15

      有趣的色彩08-16

      色彩的重復08-16

      感受色彩08-05

      春雨的色彩08-15

      主站蜘蛛池模板: 国产综合久久99久久| 色吊丝免费av一区二区| 四虎永久免费很黄的视频| 亚洲国产精品一区在线看| 国产午夜福利免费入口| 国产免费高清69式视频在线观看| 狠狠噜天天噜日日噜视频麻豆| 无码欧亚熟妇人妻AV在线外遇 | 久久天天躁狠狠躁夜夜婷| 国产精品一区二区久久不卡| 最近中文字幕完整版hd| 亚洲国产一区二区三区最新| 亚洲男人天堂一级黄色片| 久在线视频播放免费视频| 中文字幕日韩有码av| 久久婷婷大香萑太香蕉av人 | 亚洲丰满熟女一区二区蜜桃| 国语偷拍视频一区二区三区 | 亚洲av成人无码精品电影在线| 韩国精品一区二区三区在线观看 | 国产精品久久国产精麻豆99网站| 日韩免费无码一区二区三区| 中文字幕无码专区一VA亚洲V专| 国产香蕉久久精品综合网| 亚洲精品人妻中文字幕| 天堂V亚洲国产V第一次| 男女性高爱潮免费网站| 国产熟女肥臀精品国产馆乱| 国产一区二区三区av在线无码观看| 不卡乱辈伦在线看中文字幕| 国产91小视频在线观看| 伊人天天久大香线蕉av色| 男女xx00上下抽搐动态图| 日夜啪啪一区二区三区| 视频一区视频二区在线视频| 中文字幕亚洲综合第一页| 高清自拍亚洲精品二区| 天堂av在线一区二区| 亚洲av综合色区在线观看| 成人乱码一区二区三区四区| 国产精品人人爽人人做我的可爱|