パレットを設定して画像を描画

パレットを設定して、綺麗な色で画像を描画します。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. このプログラムは Windows 98 & Visual C++ ver 1.5 で作成しました。
    Visual C++ の現在のバージョンや、WindowsXP 以降では動かないかも知れません。
    グラフィックモードが動く環境が無くなりそうなので、今のうちに記録に残そうと取り上げました。
    グラフィックモードでイメージ画像を描画するのは簡単です。
    むしろこのモードで描画できるイメージ形式のファイル(*.IMG, *.RGB)を作成する方が大変です。
  2. 画像の描画は 画像を描画 を参照して下さい。
    パレットの説明は 日本の国旗を描く を参照して下さい。
    イメージ形式のファイル(C_ENEMY.IMG)をオープンして buf[10000L] に格納します。
    C_ENEMY.IMG はコンソールモード独自の形式で、16色 BMP 形式から専用のプログラムで変換したものです。
        char    buf[10000L];
    
        if ((FD= open("C_ENEMY.IMG",O_RDONLY|O_BINARY))==-1)
        {   printf("file open error\n"); return(1);  }
        if (read(FD,buf,10000L)==-1)
        {   printf("file read error\n"); close(FD); return(1);  }
        close(FD);
        
  3. Graphic Mode に切り替えて、パレットを設定してイメージを描画します。
    Ld_rgb() は日本の国旗を描くで説明した RGBパレットを設定する関数です。
    イメージの描画は _putimage() 一行だけです。
        //スクリーンの表示モードの設定
        if (!_setvideomode(_MAXRESMODE))    return(1);
    
        Ld_rgb("C_ENEMY.RGB");              //RGBパレットを設定
        _putimage(100,50,buf,_GPSET);       //イメージを表示
        

ソースプログラムとテスト用の画像ファイルを LZH で圧縮して提供します (^_^;)

ファイル名 ファイルの説明
Image.c ソースプログラム
C_ENEMY.bmp16色 BMP ファイル
C_ENEMY.IMGCイメージファイル
C_ENEMY.RGBCパレットファイル

超初心者のプログラム入門(C/C++)