1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 靜態圖像的直接顯示

        時間:2024-10-27 18:12:02 計算機畢業論文 我要投稿
        • 相關推薦

        靜態圖像的直接顯示

        在很多游戲中,有大量的圖像文件,一般只能在游戲過程中看到,有的還需過關斬將才能看到,而且不易看到全部圖像。在金山漢字系統中,雖然有一配套的圖文編輯系統SuperStar(SPT),它產生的圖形文件也只能在該系統中才能看到。因此,筆者用C語言編了一段程序,可以使讀者在西文DOS下直接看到圖像。
        該程序可被編譯成EXE文件,在西文狀態下運行。運行時選擇文件類型并輸入文件名,即可在任何顯示器上看到向慕已久的畫面。但不同的顯示器效果有明顯的差異。
        本程序所調用的圖像文件分為兩類,一是指適于在中低分辨率顯示器上顯示的單幅靜態圖片、寫真,它成批存在于游戲或演示程序中,文件名是排序的,本文稱為HTX類;二是在SPT系統中以非壓縮形式存盤的文件,通稱SPT類。
        在某些漢字系統下也可以運行本程序,如WMDOS 6.0、UCDOS 3.1、SPDOS 6.0F均可顯示。
        程序用Turbo C 2.0編譯,在HERC(大力神)單顯上運行成功。值得注意的是,運行時,當前目錄下需有相應的圖形驅動文件(BGI文件)。
        #include<dos.h>
        #include<stdio.h>
        #include<malloc.h>
        #include<graphics.h>
        main()
        {
        FILE *fp;
        void far *htxwj;
        int gd=DETECT, gm, x=0, y=0, q=15, b=0, fx;
        long size;
        char file[80];
        printf("1.HTX 2.SPT:"); scanf ("%d", &fx);
        printf("File name:"); scanf ("%s", &file);
        if(fx==2){putspt (file, x, y, q, b);closegraph();exit(0)
        ;}
        if(fx==1) goto xshtx;
        getch();exit(0);
        xshtx:
        initgraph(&gd, &gm, "");
        size=imagesize (0, 0, 500, 300);
        htwxj=malloc(size);
        getimage(0, 0, 500, 300, htxwj);
        fp=fopen(file, "rb+");
        fread(htxwj, 1, size, fp);
        putimage (y, x, htxwj, 0);
        getch();
        free(htxwj);
        fclose(fp);
        closegraph();
        }
        putspt(char *sptf, int x1, int y1, int qj, int bj)
        {
        unsigned char dot;
        FILE *fp;
        int gd=DETECT, gm;
        int h, w;
        int i, j, k, p, x, y;
        initgraph(&gd, &gm,"");
        if ((fp=fopen(sptf, "rb"))==NULL)return(1);
        fseek(fp, 34L, SEEK-SET);
        fread(&w, 2, 1, fp);
        fseek(fp, 36L, SEEK-SET);
        fread(&h, 2, 1, fp);
        if(fseek(fp, 64L, SEEK-SET))return(1);
        for(i=0; i<h; i++)
        {
        if(i>h)goto extt;
        y=y1+i;
        for(j=0; j<w/8; j++)
        {
        x=x1+8*j;
        dot=fgetc(fp);
        p=0x80;
        if(x==(w-15))goto con;
        for(k=0; k<8; k++)
        {
        if(dot&p)
        {
        putpixel(x+k, y, qj);
        }
        else
        {
        putpixel (x+k, y, bj);
        }
        p>>=1;
        }
        }con∶;
        }
        extt:
        fclose(fp);
        return(0);
        }
         

        作者:胡穎卓 

        【靜態圖像的直接顯示】相關文章:

        利用DVI實現雙屏幕超寬圖像顯示03-18

        DOS真彩色模式下真彩色圖像顯示技術03-03

        VGA顯示與TV顯示的區別及轉換03-19

        圖像時代的文學03-08

        氣柜直接置換-03-20

        圖像拼接算法及實現03-03

        圖像的小波降噪03-07

        基于PCI圖像卡的圖像實時處理系統開發03-07

        論靜態成員在C++中的應用11-18

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>