<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • SVGA圖像處理

    時間:2024-08-30 06:45:37 計算機畢業(yè)論文 我要投稿
    • 相關(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)文章:

    醫(yī)學(xué)圖像領(lǐng)域中數(shù)字圖像處理的應(yīng)用論文08-25

    圖像處理中的模糊算法及實現(xiàn)06-30

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

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

    基于圖像處理的數(shù)字測色系統(tǒng)07-05

    淺談CAD和Photoshop聯(lián)合處理圖像09-04

    數(shù)字圖像處理開題報告范文10-10

    計算機圖像處理與分析淺析09-06

    CAD和Photoshop聯(lián)合處理圖像的探索04-19

    基于PCI圖像卡的圖像實時處理系統(tǒng)開發(fā)07-24

    主站蜘蛛池模板: 国产成人久久精品一区二区三区 | 国产精品亚洲精品日韩已方| 一本一道久久a久久精品综合| 国产精品免费网站| 亚洲精品国产首次亮相| 精品久久久久久无码国产| 精品国产第1页| 国产国拍亚洲精品mv在线观看 | 久久国产乱子伦免费精品| 韩国三级中文字幕hd久久精品 | 国产欧美日韩精品专区| 久久精品一区二区国产| 国产精品无码一区二区三区电影| 亚洲国产综合精品一区在线播放| 精品久久久久久无码免费| 91国内揄拍国内精品情侣对白| 97久久久精品综合88久久| 奇米影视7777久久精品| 青青青青久久精品国产h久久精品五福影院1421 | 亚洲精品国产精品乱码在线观看| 久久精品国产99久久香蕉| 国产精品 视频一区 二区三区| 欧美精品在线一区二区三区| 久久亚洲私人国产精品| 精品一区二区三区东京热| 人妻少妇精品系列| 欧美亚洲成人精品| 亚洲av午夜国产精品无码中文字| 久久无码人妻精品一区二区三区 | 国产精品亚洲精品日韩已满| 久久亚洲欧美国产精品| 亚洲欧美日韩久久精品第一区| 亚洲国产精品第一区二区三区| 麻豆国内精品欧美在线| 午夜精品久久久久9999高清| 污污网站国产精品白丝袜| 夜夜爽一区二区三区精品| 亚洲国产精品成人久久| 漂亮人妻被黑人久久精品| 精品无码人妻一区二区三区品| 精品蜜臀久久久久99网站|