概要 | チュートリアル | 機能一覧 | 関数名一覧 | 機能別一覧 | 色見本 | MMLの書き方 |
EzGraphでは、XPM形式の画像を表示することができます。 XPM形式とは、テキストの画像フォーマットで、中身はC言語の 2次元文字配列型で表現されている。
以下にXPMファイルの例を示す。
/* XPM */ static char *XPM_X[] = { /* columns rows colors chars-per-pixel */ "16 16 2 1", " c red", ". c None", /* pixels */ "................", "................", "..... ..... ....", "...... ... .....", "...... ... .....", "....... . ......", "........ .......", "....... . ......", "...... ... .....", "...... ... .....", "..... ..... ....", "................", "................", "................", "................", "................" };
このファイルは、縦16ドット、横16ドットの画像ファイルで中央に赤いXが 描かれている。XPM形式は透過色にも対応しているため、EzGraphで背景の 上にキャラクタ等を表示することも容易である。
XPM形式はテキストファイルなので、テキストエディタで作成する こともできるが、通常はGIMP(コマンド名はgimp)や XPaint(コマンド名はxpaint)を用いて作成する。また、既存の図を XPM形式に変換する場合は、ImageMagickのconvertコマンドを使う。
convert car.gif car.xpm
もし、元の図が透過色をサポートしていない場合は、"-transparent"オプションを 用いることで、特定の色を透過色に変更できる。例えば、元の画像の黒の画素を 透過させる場合は、以下のように実行する。"#"の後は、透過させたい画素の 色を2桁16進数でRGB(赤、緑、青)の順に指定する。
convert car.bmp -transparent #000000 car.xpm
なお、convertコマンドは、ファイル名に数字や記号が入っていた場合、 アンダースコアに変換される場合がある。そのため、変換するXPMの ファイル名には、アルファベットのみを用いるか、convertコマンド実行後に XPMファイルをテキストエディタで開いて編集する必要があるので注意すること。
#include "car.xpm"のようにしてXPMファイルをインクルードする。XPMファイルを表示する場合は、
1: #include <EzGraph.h> 2: #include "car.xpm" 3: 4: int main(){ 5: EzImage img; 6: 7: img = EzReadXPM(car); 8: EzPut(400, 100, img); 9: EzEventLoop(); 10: }
まず、2行目でXPMファイルをインクルードする。5行目は、 X11環境に取り込んだXPMデータを識別するID用の変数である。 7行目で、EzReadXPM関数を用いてXPMデータであるcarを読み込み、X11環境に渡す。以降は、読み込んだ画像をimgという変数で差すことができる。 8行目は、EzPut関数を用いて表示する部分である。
car.xpmの変数名とEzPut関数に渡す引数の部分を一致させることに注意すること。