GraphicLibrary
0.5.0
|
GdkPixbuf のラッパークラス [詳解]
公開メンバ関数 | |
PixBuf () | |
デフォルト・コンストラクタ(画像オブジェクトを構築せずに初期化) | |
PixBuf (Coord< int > sz, bool hasAlpha=false) | |
画像の大きさを指定して構築 [詳解] | |
PixBuf (const char *fileName) | |
画像ファイルを指定して構築 [詳解] | |
PixBuf (std::string fileName) | |
画像ファイルを指定して構築 [詳解] | |
PixBuf (const PixBuf &src) | |
コピーコンストラクタ [詳解] | |
PixBuf (const PixBuf &src, Coord< int > offset, Coord< int > sz) | |
コピーする範囲を指定して構築する [詳解] | |
~PixBuf () | |
デストラクタ [詳解] | |
PixBuf & | operator= (const PixBuf &src) |
代入演算子の多重定義 [詳解] | |
bool | isValid () const |
画像が利用可能か ( NULL でないか ) を返す [詳解] | |
bool | isEquiv (const PixBuf &src) |
指定した画像と完全に一致しているかを判定する [詳解] | |
bool | copy (const PixBuf &src) |
他の PixBuf から画像をコピーする [詳解] | |
bool | copy (const PixBuf &src, Coord< int > offset, Coord< int > sz) |
他の PixBuf の画像の一部をコピーする [詳解] | |
void | overlay (const PixBuf &upper, Coord< double > offset, RGB::primary_type alpha, GdkInterpType interpType) |
画像を重ねあわせる [詳解] | |
void | loadFromFile (const std::string &fileName) |
ファイルから画像を取得する [詳解] | |
bool | point (Coord< int > c, RGB *palet) const |
指定した座標のパレットを取得する [詳解] | |
bool | pset (Coord< int > c, RGB palet) |
指定した座標にパレットをセットする [詳解] | |
void | draw (cairo_t *cr, Coord< double > offset, Coord< int > size, Coord< double > scale, GdkInterpType interpType) const |
Cairo コンテキスト cr を通して画像を描画する [詳解] | |
void | draw (GtkWidget *widget, Coord< double > offset, Coord< int > size, Coord< double > scale, GdkInterpType interpType) const |
widget 上に画像を描画する [詳解] | |
void | draw (cairo_t *cr, Coord< double > offset, Coord< int > size) const |
Cairo コンテキスト cr を通して画像を描画する [詳解] | |
void | draw (GtkWidget *widget, Coord< double > offset, Coord< int > size) const |
widget 上に画像を描画する [詳解] | |
void | draw (GtkWidget *widget) const |
widget 上の左上端から画像全体を描画する [詳解] | |
int | width () const |
画像の幅(横方向のサイズ)を返す | |
int | height () const |
画像の高さ(縦方向のサイズ)を返す | |
int | bps () const |
RGB 成分のビット数を返す | |
int | rowstride () const |
画像の一行分のサイズを返す | |
int | n_channels () const |
1 ピクセル分のバイト数を返す | |
int | xmod () const |
画像一行あたりの余剰分 ( rowstride - width x n_channels ) を返す | |
bool | has_alpha () const |
アルファチャンネルを持つ場合は true を返す | |
void | addAlpha (bool substitudeRGB, RGB rgb) |
アルファ・チャンネルの追加 [詳解] | |
GdkPixbuf のラッパークラス
PixBuf::PixBuf | ( | Coord< int > | sz, |
bool | hasAlpha = false |
||
) |
画像の大きさを指定して構築
画像の大きさに負数を設定した場合は例外 ExceptionNegativeNumber を投げる。 メモリが確保できなかった場合、例外 std::bad_alloc を投げる。
sz | 画像の大きさ |
hasAlpha | アルファチャンネルを持つなら true とする |
|
inlineexplicit |
画像ファイルを指定して構築
ファイルの読み込みに失敗した場合、例外 std::runtime_error を投げる。
fileName | 画像ファイル名 |
|
inlineexplicit |
画像ファイルを指定して構築
ファイルの読み込みに失敗した場合、例外 std::runtime_error を投げる。
fileName | 画像ファイル名 |
|
inline |
コピーコンストラクタ
コピー元に画像がなければ処理は行われず、画像オブジェクトは構築されない。 コピー時にメモリが確保できなかった場合、例外 std::bad_alloc を投げる。
src | コピー元の PixBuf オブジェクト |
|
inline |
コピーする範囲を指定して構築する
コピー元に画像がなければ処理は行われず、画像オブジェクトは構築されない。 コピー時にメモリが確保できなかった場合、例外 std::bad_alloc を投げる。
src | コピー元の PixBuf オブジェクト |
offset | コピー開始位置 |
sz | コピー範囲のサイズ |
|
inline |
デストラクタ
GdkPixbuf への参照を外す処理のみを行う
void PixBuf::addAlpha | ( | bool | substitudeRGB, |
RGB | rgb | ||
) |
bool PixBuf::copy | ( | const PixBuf & | src | ) |
bool PixBuf::copy | ( | const PixBuf & | src, |
Coord< int > | offset, | ||
Coord< int > | sz | ||
) |
void PixBuf::draw | ( | cairo_t * | cr, |
Coord< double > | offset, | ||
Coord< int > | size, | ||
Coord< double > | scale, | ||
GdkInterpType | interpType | ||
) | const |
Cairo コンテキスト cr を通して画像を描画する
倍率 scale で拡大・縮小後、offset だけシフトしてから size の大きさだけ切り出して、 Cairo コンテキスト cr を通して描画する。
cr の参照が無効かどうかは判定していない ( gtk+ の関数にエラー判定を委ねている )
cr | 描画対象の Cairo コンテキスト |
offset | PixBuf から画像を切り出すときのオフセット |
size | 描画する大きさ |
scale | 描画時の倍率 |
interpType | 補間方法 |
void PixBuf::draw | ( | GtkWidget * | widget, |
Coord< double > | offset, | ||
Coord< int > | size, | ||
Coord< double > | scale, | ||
GdkInterpType | interpType | ||
) | const |
widget 上に画像を描画する
倍率 scale で拡大・縮小後、offset だけシフトしてから size の大きさだけ切り出して widget に描画する。
widget | 描画対象の GtkWidget |
offset | PixBuf から画像を切り出すときのオフセット |
size | 描画する大きさ |
scale | 描画時の倍率 |
interpType | 補間方法 |
|
inline |
Cairo コンテキスト cr を通して画像を描画する
offset だけシフトしてから size の大きさだけ切り出して、 Cairo コンテキスト cr を通して描画する。
cr の参照が無効かどうかは判定していない ( gtk+ の関数にエラー判定を委ねている )
cr | 描画対象の Cairo コンテキスト |
offset | PixBuf から画像を切り出すときのオフセット |
size | 描画する大きさ |
|
inline |
widget 上に画像を描画する
offset だけシフトしてから size の大きさだけ切り出して widget に描画する。
widget | 描画対象の GtkWidget |
offset | PixBuf から画像を切り出すときのオフセット |
size | 描画する大きさ |
|
inline |
widget 上の左上端から画像全体を描画する
widget | 描画対象の GtkWidget |
bool PixBuf::isEquiv | ( | const PixBuf & | src | ) |
|
inline |
画像が利用可能か ( NULL でないか ) を返す
void PixBuf::loadFromFile | ( | const std::string & | fileName | ) |
ファイルから画像を取得する
fileName | 対象の画像ファイル |
void PixBuf::overlay | ( | const PixBuf & | upper, |
Coord< double > | offset, | ||
RGB::primary_type | alpha, | ||
GdkInterpType | interpType | ||
) |
画像を重ねあわせる
対象画像 upper を scale 倍してから offset だけ左隅原点よりシフトして重ねあわせる。 upper の右下隅の位置が画像内なら画像のある部分だけが描画される。また、外側ならはみ出た部分は描画されない。
upper | 重ねあわせる対象 Pixbuf |
offset | 自分自身の原点を基準とした描画開始位置 |
alpha | 重ねあわせ時の透明度 ( 0 - 255 ) |
interpType | 補間方法 |
bool PixBuf::point | ( | Coord< int > | c, |
RGB * | palet | ||
) | const |
指定した座標のパレットを取得する
c | パレットを取得する座標 |
palet | 取得したパレットを返すポインタ |
bool PixBuf::pset | ( | Coord< int > | c, |
RGB | palet | ||
) |
指定した座標にパレットをセットする
c | パレットをセットする座標 |
palet | セットするパレット |