Scroll to navigation

XCreateImage(3X11) XLIB FUNCTIONS 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
イメージの深さを指定する。
display
X サーバへの接続を指定する。
format
イメージの形式を指定する。 XYBitmap, XYPixmap, ZPixmap のいずれかを指定できる。
height
イメージの高さと幅をピクセル数で指定する。
offset
スキャンラインの先頭で無視するビット数を指定する。
pixel
新しいピクセル値を指定する。
subimage_height
新しいサブイメージの高さのピクセル数を指定する。
subimage_width
新しいサブイメージの幅のピクセル数を指定する。
value
加算される定数を指定する。
visual
Visual 構造体を指定する。
width
イメージの幅をピクセル数で指定する。
ximage
イメージを指定する。
x
 
y
x, y 座標を指定する。

説明

関数 XInitImage はイメージ構造体の内部イメージ操作ルーチンの初期化を行う。この初期化は 構造体の各種メンバの値に基づいて行われる。 操作ルーチン以外の全てのフィールドは既に初期化されていなければならない。 bytes_per_line メンバが 0 の場合、 XInitImage はイメージデータがメモリ中で連続であると仮定し、他のメンバを使って bytes_per_line に適切な値を設定する。そうでない場合には、 bytes_per_line は変更されない。 全ての操作ルーチンは、構造体の残りの部分で指定された型のイメージを操作 するために Xlib のイメージ操作関数が必要とする関数に初期化される。
クライアントがイメージを生成した場合は、このイメージを他の Xlib 関数に 渡す前に必ずこの関数を呼ばなければならない。 Xlib が生成あるいは返したイメージ構造体の場合は、このような初期化は必 要ない。
この関数は構造体の初期化に成功すれば 0 でないステータスを返す。エラー が起きた場合や構造体の矛盾が見つかった場合には、この関数は 0 を返す。 この場合にはイメージは変更されない。
関数 XCreateImage は、指定したディスプレイにおける XImage に必要なメモリを割り当てる。しかし、イメージそのもののためのメモリは 割り当てない。 この関数はメモリの割り当てと言うよりも、ディスプレイより構造体のバイト順、 ビット順、ビットマップの基本単位(bitmap-unit)を初期化して XImage 構造体へのポインタを返すものである。 red, green, blue マスク値は Z フォーマットのイメージに対してのみ定義 される。これらの値は受け取った Visual より求められる。 この他の値も渡されることがある。 引き数 offset を使うと各スキャンラインの先頭に移動する必要がないので、 イメージを高速に表示できる。 bytes_per_line に 0 を指定した場合、Xlib はスキャンラインはメモリ中で 連続であるものと仮定して bytes_per_line の値を計算する。
XCreateImage, XGetImage, XSubImage を使ってイメージを生成した場合、関数 XDestroyImage が呼び出すイメージ破棄の手続きはイメージ構造体とそれが指すデータの両方 を解放する点に注意すること。
ピクセルの取得、ピクセルの設定、サブイメージの生成、イメージへの 定数値追加に使われる基本関数はイメージオブジェクト内に定義される。 この章の関数は、実際にはイメージオブジェクト内の関数を呼び出すマクロで あり、 < X11/Xutil.h> で定義されている。
関数 XGetPixel は指定したイメージの指定した位置のピクセル値を返す。 返されるピクセル値は正規化されたフォーマットである(つまり long の最下位バイトがピクセルの最下位バイトとなる)。 イメージは x, y 座標を持っていなくてはならない。
関数 XPutPixel は、指定したイメージ上のピクセルを指定したピクセル値で上書きする。 入力するピクセル値は正規化されたフォーマットでなくてはならない(つまり long の最下位バイトがピクセルの最下位バイトとなる)。 イメージは x, y 座標を持っていなくてはならない。
関数 XSubImage は既存のイメージの一部分であるイメージを新しく作る。 この関数は新しい XImage 構造体に必要なメモリを割り当て、新しいイメージへのポインタを返す。 データは元のイメージからコピーされる。 また、イメージは x, y, subimage_width, subimage_height を含まなくては ならない。
関数 XAddPixel はイメージ内の全てのピクセル値に定数を加える。 この関数は、色リソースを割り当てて得たピクセル値を持っていて、 イメージをその形式にする必要があるときに便利である。
関数 XDestroyImageXImage に対応するメモリを解放する。

関連項目

XPutImage(3X11)
 
Xlib - C Language X Interface
Release 6.5 X Version 11