GraphicLibrary  0.5.0
PixBuf クラス

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 ()
 デストラクタ [詳解]
 
PixBufoperator= (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 とする
PixBuf::PixBuf ( const char *  fileName)
inlineexplicit

画像ファイルを指定して構築

ファイルの読み込みに失敗した場合、例外 std::runtime_error を投げる。

引数
fileName画像ファイル名
PixBuf::PixBuf ( std::string  fileName)
inlineexplicit

画像ファイルを指定して構築

ファイルの読み込みに失敗した場合、例外 std::runtime_error を投げる。

引数
fileName画像ファイル名
PixBuf::PixBuf ( const PixBuf src)
inline

コピーコンストラクタ

コピー元に画像がなければ処理は行われず、画像オブジェクトは構築されない。 コピー時にメモリが確保できなかった場合、例外 std::bad_alloc を投げる。

引数
srcコピー元の PixBuf オブジェクト
PixBuf::PixBuf ( const PixBuf src,
Coord< int >  offset,
Coord< int >  sz 
)
inline

コピーする範囲を指定して構築する

コピー元に画像がなければ処理は行われず、画像オブジェクトは構築されない。 コピー時にメモリが確保できなかった場合、例外 std::bad_alloc を投げる。

引数
srcコピー元の PixBuf オブジェクト
offsetコピー開始位置
szコピー範囲のサイズ
PixBuf::~PixBuf ( )
inline

デストラクタ

GdkPixbuf への参照を外す処理のみを行う

関数詳解

void PixBuf::addAlpha ( bool  substitudeRGB,
RGB  rgb 
)

アルファ・チャンネルの追加

引数
substitudeRGB指定した RGB 成分 ( rgb ) と同じ色のピクセルを透明色に置き換えるなら true を指定する
rgb透明色に置き換えるときの RGB 成分。substitudeRGB が false なら無視される。
戻り値
なし
bool PixBuf::copy ( const PixBuf src)

他の PixBuf から画像をコピーする

コピー元に画像がなければ処理は行われず、元の画像オブジェクトはそのまま残される。 コピー時にメモリが確保できなかった場合、例外 std::bad_alloc を投げる。このとき、 元の画像オブジェクトは消失してしまう。

引数
srcコピー元の PixBuf
戻り値
コピーに成功した場合は true を返す
bool PixBuf::copy ( const PixBuf src,
Coord< int >  offset,
Coord< int >  sz 
)

他の PixBuf の画像の一部をコピーする

コピー対象の範囲がコピー元の画像範囲をはみ出ている場合はコピーがされない ( gdk_pixbuf_copy_area の処理に失敗する )。 コピー元に画像がなければ処理は行われず、元の画像オブジェクトはそのまま残される。 コピー時にメモリが確保できなかった場合、例外 std::bad_alloc を投げる。このとき、 元の画像オブジェクトは消失してしまう。

引数
srcコピー元の PixBuf
offsetコピー開始位置
szコピー範囲のサイズ
戻り値
コピーに成功した場合は true を返す
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 コンテキスト
offsetPixBuf から画像を切り出すときのオフセット
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
offsetPixBuf から画像を切り出すときのオフセット
size描画する大きさ
scale描画時の倍率
interpType補間方法
void PixBuf::draw ( cairo_t *  cr,
Coord< double >  offset,
Coord< int >  size 
) const
inline

Cairo コンテキスト cr を通して画像を描画する

offset だけシフトしてから size の大きさだけ切り出して、 Cairo コンテキスト cr を通して描画する。

cr の参照が無効かどうかは判定していない ( gtk+ の関数にエラー判定を委ねている )

引数
cr描画対象の Cairo コンテキスト
offsetPixBuf から画像を切り出すときのオフセット
size描画する大きさ
void PixBuf::draw ( GtkWidget *  widget,
Coord< double >  offset,
Coord< int >  size 
) const
inline

widget 上に画像を描画する

offset だけシフトしてから size の大きさだけ切り出して widget に描画する。

引数
widget描画対象の GtkWidget
offsetPixBuf から画像を切り出すときのオフセット
size描画する大きさ
void PixBuf::draw ( GtkWidget *  widget) const
inline

widget 上の左上端から画像全体を描画する

引数
widget描画対象の GtkWidget
bool PixBuf::isEquiv ( const PixBuf src)

指定した画像と完全に一致しているかを判定する

判定対象は RGB 成分のみで、アルファチャンネルは無視する。

引数
src比較対象の画像
戻り値
一致した場合は true を返す
bool PixBuf::isValid ( ) const
inline

画像が利用可能か ( NULL でないか ) を返す

戻り値
利用可能なら true を返す
void PixBuf::loadFromFile ( const std::string &  fileName)

ファイルから画像を取得する

引数
fileName対象の画像ファイル
戻り値
取得に成功した場合は true を返す
PixBuf& PixBuf::operator= ( const PixBuf src)
inline

代入演算子の多重定義

引数
src代入元の PixBuf オブジェクト
戻り値
自分自身への参照
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取得したパレットを返すポインタ
戻り値
取得に成功した場合は true を返す
bool PixBuf::pset ( Coord< int >  c,
RGB  palet 
)

指定した座標にパレットをセットする

引数
cパレットをセットする座標
paletセットするパレット
戻り値
セットに成功した場合は true を返す

このクラス詳解は次のファイルから抽出されました: