<form id="itnzz"><noscript id="itnzz"></noscript></form>

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

            SVGA圖像處理

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

            SVGA圖像處理

               SVGA彩色圖形卡是一種超級VGA卡,它不僅具有640×480×16色圖像顯示模式,而且具有640×480×256色圖像顯示模式。
            Microsoft C/C++7.0提供了豐富的圖形庫函數(shù),尤其是提供了對SVGA卡所能設(shè)置的高分辨率圖像模式的支持,利用豐富的圖形庫函數(shù)進行組合,就可以完成各種需要的功能。例如圖像處理,動畫編程,界面制作等。這一點對編程者來說無疑是十分方便的。
            然而遺憾的是許多圖形庫函數(shù)在一些特定的顯示模式(如-VERS256COLOR(0x0101)方式(640×480×256)等256色模式)下卻無法正常工作,例如使用例程-getimage()和-putimage()時常會出現(xiàn)死機和不能正常工作(出現(xiàn)雪花或不進行任何操作)等現(xiàn)象。用-grstatus()函數(shù)檢測調(diào)用函數(shù)的狀態(tài)時,返回圖形錯誤或警告信息,常見的有圖形錯誤(-1)和不支持請求的視頻方式(-2)等,而這些函數(shù)在VGA下工作正常。
            根據(jù)VESA圖形標準,在圖像模式下,SVGA的Video buffer(視頻緩沖區(qū))是順序的鏈結(jié)構(gòu),且圖像數(shù)據(jù)是按行序順序存放的,一個像素(屏幕上的一個點)用存儲器的一個字節(jié)(256色)表示。視頻存儲器按字節(jié)連續(xù)尋址,與主機內(nèi)存采用映射方式通訊,一次只能讀寫64KB的視頻存儲器,通過改變段偏移量(I/O操作)來尋址不同的段,即實現(xiàn)對全部視頻存儲器的操作。
            同時,直接訪問SVGA的寄存器進行讀寫操作,充分利用硬件的支持可以大大加快圖形的處理速度。實踐表明,其運行速度明顯優(yōu)于圖形庫中提供的函數(shù)(以-getimage()和-putimage()為例快30倍)。
            筆者通過對視頻存儲器(Video buffer)的直接訪問實現(xiàn)了256色圖像顯示模式下圖像塊的讀寫功能。下面附上在VESA標準的0x0101(256)圖像顯示模式下-getimage()和-putimage()兩個函數(shù)的源程序,該源程序是用Microsoft C/C++7.0編寫的。這兩個函數(shù)在Compaq 486及兼容機上運行通過。
            -getimage()和-putimage()兩個函數(shù)的參數(shù)類型說明及意義與Microsoft C/C++7.0中相應(yīng)函數(shù)的參數(shù)類型說明及意義相同。
            /* 將圖像存儲到緩沖區(qū)中 */
            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);/* 設(shè)置頁寄存器 */
            for (i=0; i<n; i++, q+=m) {/* 行循環(huán) */
            -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;
            }
            }
            }
            /* 在緩沖區(qū)中搜索圖像 */
            void-putimage256(x,y,image,action)
            short x,y,action;/* 參數(shù)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圖像處理】相關(guān)文章:

            DMA在實時圖像處理中的應(yīng)用08-06

            基于數(shù)據(jù)庫的JPG圖像處理08-06

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

            一種基于圖像處理的自動調(diào)焦系統(tǒng)08-06

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

            Data Matrix二維碼圖像處理與應(yīng)用04-12

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

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

            函數(shù)的圖像08-17

            主站蜘蛛池模板: 国语精品自产拍在线观看网站| 国产综合久久久久影院| 亚洲高清国产拍精品熟女| 老色鬼在线精品视频| 国内不卡一区二区三区| 乱码精品一区二区三区| 在线欧美中文字幕农村电影| 国产亚洲人成网站在线观看 | 久久亚洲女同第一区综合| 国产极品尤物粉嫩在线观看| 欧美人成精品网站播放| 久久精品国产亚洲av麻豆长发| 欧美中文字幕无线码视频| 欧美黑人添添高潮a片www| 一区二区三区无码免费看| 日韩视频免费| 国产香蕉精品视频一区二区三区| 亚洲国产精品一区二区视频| 日韩在线视频一区二区三| 国产av一区二区亚洲精品| 亚洲国产美女精品久久久| 无码伊人久久大杳蕉中文无码 | 777久久精品一区二区三区无码| 综合午夜福利中文字幕人妻| 人妻无码熟妇乱又伦精品视频 | 亚洲另类无码专区国内精品| 亚洲成A人片在线观看无码不卡 | 最近中文字幕mv在线视频www| 一本一本久久a久久精品综合| 欧洲性开放老太大| 少妇人妻综合久久中文字幕| 成人午夜伦理在线观看| 国产真实乱人偷精品人妻| 亚洲一区二区约美女探花| 波多野结衣一区二区三区88| 免费VA国产高清大片在线| 一级片黄色一区二区三区| 日本一道一区二区视频| 亚洲永久精品一区二区三区 | 国产午夜福利av在线麻豆| 影音先锋啪啪av资源网站|