XCreateImage(3X11)

名前
XInitImage, XCreateImage, XGetPixel, XPutPixel, XSubImage, XAddPixel, XDestroyImage - イメージ用ユーティリティ

書式
Status XInitImage(image)
      XImage *image;

XImage *XCreateImage(display, visual, depth, format, offset, data, width, height, bitmap_pad,
                        bytes_per_line)
      Display *display;
      Visual *visual;
      unsigned int depth;
      int format;
      int offset;
      char *data;
      unsigned int width;
      unsigned int height;
      int bitmap_pad;
      int bytes_per_line;

unsigned long XGetPixel(ximage, x, y)
      XImage *ximage;
      int x;
      int y;

XPutPixel(ximage, x, y, pixel)
      XImage *ximage;
      int x;
      int y;
      unsigned long pixel;

XImage *XSubImage(ximage, x, y, subimage_width, subimage_height)
      XImage *ximage;
      int x;
      int y;
      unsigned int subimage_width;
      unsigned int subimage_height;

XAddPixel(ximage, value)
      XImage *ximage;
      long value;

XDestroyImage(ximage)
        XImage *ximage;

引き数

bitmap_pad
    スキャンラインの最小単位(8, 16, 32 のいずれか)を指定。 言い替えれば、クライアントのメモリ中では、スキャンラインの先頭は次のス キャンラインの先頭とこのビット数の整数倍だけ離れている。

bytes_per_line
    クライアントのイメージ内での、あるスキャンラインの先頭と次のスキャンラ インの先頭の間のバイト数を指定。

data
    イメージデータを指定。

depth
    イメージの深さ(depth)を指定。

display
    X サーバへの接続を指定。

format
    イメージの形式を指定。 これは のいずれかである。

height
    イメージの高さと幅をピクセル数で指定。

offset
    スキャンラインの先頭で無視するビット数を指定。

pixel
    新しいピクセル値を指定。

subimage_height
    新しいサブイメージの高さのピクセル数を指定。

subimage_width
    新しいサブイメージの幅のピクセル数を指定。

value
    加えるべき定数を指定。

visual
    構造体を指定。

width
    イメージの幅をピクセル数で指定。

ximage
    イメージを指定。

x

y   x, y 座標を指定。

説明
関数 はイメージ構造体の内部イメージ操作ルーチンの初期化を行う。この初期化は 構造体の各種メンバの値に基づいて行われる。 操作ルーチン以外の全てのフィールドは既に初期化されていなければならない。 bytes_per_line メンバがゼロの場合、 はイメージデータがメモリ中で連続であると仮定し、他のメンバを使って bytes_per_line に適切な値をセットする。そうでない場合には、 bytes_per_line は変更されない。 操作ルーチンの全ては、Xlib の他のイメージ操作関数が使う関数に初期化さ れる。これは、構造体の残りのメンバで指定されたタイプのイメージを操作す るために必要とされる。

クライアントがイメージを生成した場合には、これを他の Xlib 関数に渡す前 に必ずこの関数を呼ばなければならない。 Xlib が生成あるいは返したイメージ構造体の場合は、このような初期化は必 要ない。

この関数は構造体の初期化に成功すればゼロでないステータスを返す。エラー が起きた場合や構造体の矛盾が見つかった場合には、この関数はゼロを返す。 この場合にはイメージは変更されない。

関数 は、指定したディスプレイに対する に必要なメモリをアロケートする。しかし、イメージそのもののメモリはアロ ケートしない。 この関数はむしろ、ディスプレイより構造体のバイト順、ビット順、ビットマッ プの単位を初期化し、 構造体へのポインタを返すものである。 red, green, blue マスク値は Z フォーマットのイメージに対してのみ定義 される。これらの値は受け取った より求められる。 他の値も渡されることがある。 引き数 offset を使うと各スキャンラインの先頭に移動する必要がないので、イ メージの高速な表示ができる。 bytes_per_line にゼロを指定した場合、Xlib はスキャンラインはメモリ中で 連続であるものと仮定し、bytes_per_line の値を計算する。

を使ってイメージを生成した場合、関数 が呼び出すイメージ破棄の手続きはイメージ構造体とそれが指すデータの両方 を解放する点に注意せよ。

ピクセルの取得、ピクセルのセット、サブイメージの生成、イメージへの定数 値追加に使われる基本関数は、イメージオブジェクト内に定義される。 この章の関数は、実際にはイメージオブジェクト内の関数を呼び出すマクロで あり、 で定義されている。

関数 は指定したイメージの指定した位置のピクセル値を返す。 返されるピクセル値は正規化されたフォーマットである(つまり、long の最下 位バイトがピクセルの最下位バイト)。 イメージは x, y 座標を持っていなくてはならない。

関数 は指定したイメージのピクセルを、指定したピクセル値で上書きする。 入力するピクセル値は正規化されたフォーマットでなくてはならない(つまり、 long の最下位バイトがピクセルの最下位バイト)。 イメージは x, y 座標を持っていなくてはならない。

関数 は、既にあるイメージの一部である新しいイメージを作る。 この関数は新しい 構造体に必要なメモリをアロケートし、新しいイメージへのポインタを返す。 データは元のイメージからコピーされる。 また、イメージは x, y, subimage_width, subimage_height を含まなくては ならない。

関数 はイメージ内の全てのピクセルに定数を加える。 この関数は、アロケートしたカラーリソースから得たピクセル値を持っていて、 イメージをその形式にする必要があるときに便利である。

関数 は、 に対応するメモリを解放する。

関連項目
XPutImage(3X11)
Xlib - C Language X Interface