X ウィンドウ上で動作するプログラムに,お絵描きツールのような画像を作成,編集するエディタ bitmap がある.この bitmap を利用して,ある2値(ビット単位で値0と1からなる)のイメージ描き,ファイルに保存する.これをビットマップファイルと呼ぶ.保存されたビットマップファイルを読込んで,ウィンドウに表示するプログラムを作成しててみよう.
ソースコード源文件
コンパイル
つぎに表示するイメージ,即ちプログラム rdbitmap の入力ファイルとなるビットマップファイルを作成する.ビットマップファイルは,エヂィタ bitmap で作成する.
エディタ bitmap の size パラメータで指定した値は,作成するビットマップの幅(width),高さ(Height)が各々32,24ドットである. 下記の画面のように自由なイメージを描画する.編集が終了したら,左上の"File"をクリックし,プルダウンメニューから"Save as "をクリックすると,"Save file"ウィンドウが現れる.ファイル名 bitmap01.bmp を入力し,続いて"OK"をクリックする.再度プルダウンメニューから"Quite"を選択して,bitmapを終了させる. ![]() 実行結果
上のコマンドを入力すると,下記のウィンドウが表示される. ![]() |
---|
次に,ワークステーションと X11 プログラミングの理解を深めために,プログラム rdbitmap.cの内容を見てみよう.
である.これらの各々の手続き,即ち利用するXの資源や呼び出す関数の種類,順序などは,画像処理の目的によって異なる.
つぎに画像処理プログラミングのために,入力対象となった画像データファイルのフォーマット(記憶形式)について,正しく理解しておく必要がある.プログラム rdbitmap の入力ファイルとして指定した画像データのフォーマットを調べてみよう.
% cat bitmap01.bmp
#define bitmap01_width 32
#define bitmap01_height 24
static unsigned char bitmap01_bits[] = {
0xf8, 0x00, 0x00, 0x00, 0x04, 0x01, 0xf8, 0x00, 0x02, 0x02, 0x06, 0x03,
0x01, 0x84, 0x01, 0x0c, 0x01, 0x44, 0x00, 0x10, 0x01, 0x44, 0x00, 0x10,
0x01, 0x24, 0x00, 0x20, 0x01, 0x24, 0x00, 0x20, 0x02, 0x12, 0x00, 0x40,
0x04, 0x11, 0x00, 0x40, 0xf8, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40,
0x00, 0x10, 0x00, 0x40, 0xfc, 0x21, 0x00, 0x20, 0x02, 0x22, 0x00, 0x20,
0x01, 0x44, 0x00, 0x10, 0x01, 0x44, 0x00, 0x10, 0x01, 0x84, 0x01, 0x0c,
0x01, 0x04, 0x06, 0x03, 0x01, 0x04, 0xf8, 0x70, 0x01, 0x04, 0x00, 0x88,
0x01, 0x04, 0x00, 0x88, 0x02, 0x02, 0x00, 0x88, 0xfc, 0x01, 0x00, 0x70};