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

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

      SVGA圖像處理

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

      SVGA圖像處理

         SVGA彩色圖形卡是一種超級VGA卡,它不僅具有640×480×16色圖像顯示模式,而且具有640×480×256色圖像顯示模式。
      Microsoft C/C++7.0提供了豐富的圖形庫函數,尤其是提供了對SVGA卡所能設置的高分辨率圖像模式的支持,利用豐富的圖形庫函數進行組合,就可以完成各種需要的功能。例如圖像處理,動畫編程,界面制作等。這一點對編程者來說無疑是十分方便的。
      然而遺憾的是許多圖形庫函數在一些特定的顯示模式(如-VERS256COLOR(0x0101)方式(640×480×256)等256色模式)下卻無法正常工作,例如使用例程-getimage()和-putimage()時常會出現死機和不能正常工作(出現雪花或不進行任何操作)等現象。用-grstatus()函數檢測調用函數的狀態時,返回圖形錯誤或警告信息,常見的有圖形錯誤(-1)和不支持請求的視頻方式(-2)等,而這些函數在VGA下工作正常。
      根據VESA圖形標準,在圖像模式下,SVGA的Video buffer(視頻緩沖區)是順序的鏈結構,且圖像數據是按行序順序存放的,一個像素(屏幕上的一個點)用存儲器的一個字節(256色)表示。視頻存儲器按字節連續尋址,與主機內存采用映射方式通訊,一次只能讀寫64KB的視頻存儲器,通過改變段偏移量(I/O操作)來尋址不同的段,即實現對全部視頻存儲器的操作。
      同時,直接訪問SVGA的寄存器進行讀寫操作,充分利用硬件的支持可以大大加快圖形的處理速度。實踐表明,其運行速度明顯優于圖形庫中提供的函數(以-getimage()和-putimage()為例快30倍)。
      筆者通過對視頻存儲器(Video buffer)的直接訪問實現了256色圖像顯示模式下圖像塊的讀寫功能。下面附上在VESA標準的0x0101(256)圖像顯示模式下-getimage()和-putimage()兩個函數的源程序,該源程序是用Microsoft C/C++7.0編寫的。這兩個函數在Compaq 486及兼容機上運行通過。
      -getimage()和-putimage()兩個函數的參數類型說明及意義與Microsoft C/C++7.0中相應函數的參數類型說明及意義相同。
      /* 將圖像存儲到緩沖區中 */
      void-getimage256(x1,y1,x2,y2,image)
      short x1,y1,x2,y2;
      char-huge *image;
      {
      char-far*buf,-huge *q;
      long u;
      short m,n,i,j,block;
      m=abs(x2-x1)+1;
      n=abs(y2-y1)+1;
      (short)*image=m;
      (short)*(image+2)=n;/* 保留圖像的高度與寬度 */
      q=image+4;
      u=min(x1,x2);
      u+=min(y1,y2) * 640L;
      block=(short)(u/65536L);
      u-=block*65536L;/* 計算偏移量 */
      -FP-SEG(buf)=0xA000;
      -FP-OFF(buf)=u;
      -outp(0x3c4,14),
      -outp(0x3C5,block^2);/* 設置頁寄存器 */
      for (i=0; i<n; i++, q+=m) {/* 行循環 */
      -memcpy(q, buf, m);
      u+=640;
      if(u<65536L) buf+=640;
      else {/* 當一行不在同一段時 */
      u-=65536L;
      -FP-SEG(buf)=0xA000;
      -FP-OFF(buf)=0;
      block++;
      -outp(0x3C4,14);
      -outp(0x3C5,block^2);
      if(m>640-u)-memcpy(q+640-u,buf,(size-t)(m-640+u));
      -FP-OFF(buf)=u;
      }
      }
      }
      /* 在緩沖區中搜索圖像 */
      void-putimage256(x,y,image,action)
      short x,y,action;/* 參數action表示圖像寫方式 */
      char-huge * image;
      {
      char-far *buf,-huge*q;
      long u;
      short m, n, j, i, block, mm;
      -memcpy(&mm, image, 2);
      if ((x+mm)>640) m=640-x;
      else m=mm;
      -memcpy(&n, image+2, 2);
      if (y+n>480) n=480-n;/* 取圖像的高度和寬度,并進行邊界處理 */
      q=image+4;
      u=x;
      u+=y*640L;
      block=(short) (u/65536L);
      u-=block*65536L;
      -FP-SEG(buf)=0xA000;
      -FP-OFF(buf)=u;
      -outp(0x3C4, 14);
      -outp(0x3C5, block^2);
      for (i=0; i<n; i++,q+=mm) {
      if (action==-GPSET) -memcpy(buf, q, m);
      else if(action==-GOR)for (j=0;j<m; j++) * (buf+j)|=(*(q+j));
      else if(action==-GAND)for (j=0;j<m; j++) * (buf+j)&=(* (q+j));
      else if(action==-GXOR)for (j=0;j<m; j++) * (buf+j)^=(* (q+j));
      else if(action==-GPRESET)for (j=0;j<m; j++) * (buf+j)=~(* (q+j));
      u+=640;
      if(u<65536L) buf+=640;
      else {
      u-=65536L;
      -FP-SEG(buf)=0xA000;
      -FP-OFF(buf)=0;
      block++;
      -outp(0x3C4, 14);
      -outp(0x3C5, block^2);
      if (m>640-u) {
      if (action==-GPSET) -memcpy(buf,q+640-u, (size-t)(m-640+u));
      else if(action==-GOR)
      for(j=0;j<m-640+u;j++) *(buf+j)|=(*(q+640-u+

      j));
      else if(action==-GAND)
      for(j=0;j<m-640+u;j++) * (buf+j)&=(*(q+640-u+j));
      else if (action==-GXOR)
      for(j=0;j<m-640+u;j++) * (buf+j)^=(*(q+640-u+j));
      else if(action==-GPRESET)
      for(j=0;j<m-640+u;j++) * (buf+j)=~(* (q+640-u+j));
      }
      -FP-OFF(buf)=u;
      }
      }
      }


      【SVGA圖像處理】相關文章:

      DMA在實時圖像處理中的應用08-06

      基于數據庫的JPG圖像處理08-06

      圖像處理中分辨率的選取08-06

      一種基于圖像處理的自動調焦系統08-06

      掃描儀圖像采集與處理技術研究08-19

      Data Matrix二維碼圖像處理與應用04-12

      PCI總線和DSP芯片的圖像處理平臺的硬件設計08-06

      校企“零距離對接”培養平面圖像處理人才08-25

      函數的圖像08-17

      主站蜘蛛池模板: 国产午夜福利大片免费看| 推特国产午夜福利在线观看| 免费观看全黄做爰大片| 一本之道高清乱码少妇| 亚洲岛国成人免费av| 亚洲精品日韩在线观看| 国产成人高清精品亚洲一区| 丰满人妻熟妇乱又精品视| 免费国产拍久久受拍久久| 中文字幕亚洲综合第一页| 亚洲区精品区日韩区综合区| 国产成人精品亚洲午夜| 亚洲精品揄拍自拍首页一| 亚洲AV无码专区亚洲AV桃| 亚洲中文字幕无码一区无广告| 国产99青青成人A在线| 日韩一区在线中文字幕| 国产999精品2卡3卡4卡| 国产高颜值不卡一区二区| 国产91久久精品一区二区| 人妻少妇一区二区三区| 天天摸夜夜摸夜夜狠狠添| 国产综合视频一区二区三区| 成人午夜电影福利免费| 国产精品久久中文字幕| 中文字幕亚洲精品人妻| 精品国产亚洲一区二区三区| 99久久精品一区二区国产| 国产熟女一区二区三区蜜臀| 一级片黄色一区二区三区| 国产成人无码AV片在线观看不卡 | 久久国内精品一国内精品| 男女性高爱潮免费网站| 亚欧洲乱码视频在线专区| 中文字幕亚洲一区二区三区| 国产精品视频亚洲二区| 久久午夜无码鲁丝片直播午夜精品| 国产蜜臀在线一区二区三区| 国产精品国产三级国产试看| 最新中文字幕av无码专区不| 亚洲の无码国产の无码步美|