GraphicLibrary
0.5.0
|
GdkPixbuf からなるレイヤ [詳解]
公開型 | |
typedef std::vector< Layer >::size_type | size_type |
レイヤの番号の型 | |
公開メンバ関数 | |
PixbufLayers () | |
空のレイヤで初期化する | |
PixbufLayers (Coord< int > size, RGB rgb, bool hasAlpha, RGB::primary_type alpha) | |
サイズ・色を指定して初期化する [詳解] | |
PixbufLayers (const std::string &fileName) | |
画像ファイル名を指定して初期化する [詳解] | |
~PixbufLayers () | |
デストラクタ | |
void | addLayer () |
空のレイヤを追加する [詳解] | |
void | addLayer (Coord< double > offset, Coord< int > size, RGB rgb, bool hasAlpha, RGB::primary_type alpha) |
指定したサイズのレイヤを追加する [詳解] | |
void | addFromFile (const std::string &fileName) |
指定したファイルの画像を新たなレイヤとして追加する [詳解] | |
void | eraseLayer () |
現在のレイヤを消去する [詳解] | |
void | changeLayer (size_type lowerLayer) |
現在のレイヤの位置を入れ替える [詳解] | |
void | superimpose () |
現在のレイヤを下側の画像に重ね合わせる [詳解] | |
void | setCurrentLayer (size_type index) |
現在のレイヤ番号を変更する [詳解] | |
size_type | getCurrentLayer () const |
現在のレイヤ番号を返す [詳解] | |
size_type | layerSize () const |
レイヤ数を返す [詳解] | |
virtual Coord< int > | size () const |
現レイヤのサイズを取得する [詳解] | |
virtual void | resize (Coord< int > size) |
現レイヤのサイズを変更する [詳解] | |
RGB | getBgColor () const |
現レイヤの背景色を返す | |
void | setBgColor (RGB rgb) |
現レイヤの背景色をセットする | |
Coord< double > | getOffset () const |
現レイヤのオフセット値を返す | |
void | setOffset (Coord< double > offset) |
現レイヤのオフセット値をセットする | |
RGB::primary_type | getAlpha () const |
現レイヤのアルファ・チャンネルを返す | |
void | setAlpha (RGB::primary_type alpha) |
現レイヤのアルファ・チャンネルをセットする | |
int | width () const |
現レイヤの幅(横方向のサイズ)を返す | |
int | height () const |
現レイヤの高さ(縦方向のサイズ)を返す | |
int | canvasWidth () const |
キャンバスの幅(横方向のサイズ)を返す | |
int | canvasHeight () const |
キャンバスの高さ(縦方向のサイズ)を返す | |
int | bps () const |
現レイヤの RGB 成分のビット数を返す | |
int | rowstride () const |
現レイヤの画像の一行分のサイズを返す | |
int | nChannels () const |
現レイヤの 1 ピクセル分のバイト数を返す | |
bool | hasAlpha () const |
現レイヤがアルファチャンネルを持つ場合は true を返す | |
void | addAlpha (bool substitudeRGB, RGB rgb) |
現レイヤにアルファ・チャンネルを追加する [詳解] | |
void | initLayer (Coord< int > size, RGB rgb, bool hasAlpha, RGB::primary_type alpha) |
指定したサイズの画像で初期化する [詳解] | |
void | loadFromFile (const std::string &fileName) |
指定したファイルの画像で初期化する [詳解] | |
Coord< double > | layerCoord (Coord< double > c) const |
現レイヤのキャンバスに対する相対位置を求める [詳解] | |
virtual bool | point (Coord< int > c, RGB *palet) const |
指定した座標のパレットを取得する [詳解] | |
virtual 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 コンテキストを通して画像を描画する [詳解] | |
void | draw (GtkWidget *widget, Coord< double > offset, Coord< int > size, Coord< double > scale, GdkInterpType interpType) const |
ウィジェット上に画像を描画する [詳解] | |
![]() | |
virtual | ~DrawingArea_IF () |
仮想デストラクタ (何もしない) | |
GdkPixbuf からなるレイヤ
描画時に全レイヤが重ね合わされる
|
inline |
サイズ・色を指定して初期化する
size | レイヤのサイズ |
rgb | 塗りつぶす色 |
hasAlpha | アルファ・チャンネルを持つ場合は true |
alpha | 重ね合わせ時のアルファ・チャンネル |
|
inline |
画像ファイル名を指定して初期化する
fileName | 画像ファイル名 |
void PixbufLayers::addAlpha | ( | bool | substitudeRGB, |
RGB | rgb | ||
) |
void PixbufLayers::addFromFile | ( | const std::string & | fileName | ) |
指定したファイルの画像を新たなレイヤとして追加する
ファイルの読み込みに失敗した場合、例外 std::runtime_error を投げる。
fileName | 追加する画像ファイル名 |
void PixbufLayers::addLayer | ( | ) |
空のレイヤを追加する
void PixbufLayers::addLayer | ( | Coord< double > | offset, |
Coord< int > | size, | ||
RGB | rgb, | ||
bool | hasAlpha, | ||
RGB::primary_type | alpha | ||
) |
指定したサイズのレイヤを追加する
画像の大きさに負数を設定した場合は例外 ExceptionNegativeNumber を投げる。 メモリが確保できなかった場合、例外 std::bad_alloc を投げる。
offset | レイヤの描画開始位置(左上隅) |
size | 追加するレイヤのサイズ |
rgb | 初期化時に塗りつぶす RGB 成分 |
hasAlpha | アルファ・チャンネルを持つ場合は true |
alpha | 合成時のアルファ・チャンネル |
void PixbufLayers::changeLayer | ( | size_type | lowerLayer | ) |
現在のレイヤの位置を入れ替える
入れ替え位置は指定した番号のレイヤの次とする ( 例えば 0 を指定した場合は 0 番目の次である 1 番目のレイヤになる。 現在のレイヤが 0 番目なら何も処理しない。 指定した添字が範囲外だった場合は例外 std::out_of_range を投げる
lowerLayer | 入れ替え位置の下側のレイヤ番号 |
void PixbufLayers::draw | ( | cairo_t * | cr, |
Coord< double > | offset, | ||
Coord< int > | size, | ||
Coord< double > | scale, | ||
GdkInterpType | interpType | ||
) | const |
cairo コンテキストを通して画像を描画する
cr | Cairo コンテキスト |
offset | 画像をシフトする量 |
size | 画像を描画する大きさ |
scale | 画像の拡大・縮小率 |
interpType | 拡大・縮小時の補間方法 |
void PixbufLayers::draw | ( | GtkWidget * | widget, |
Coord< double > | offset, | ||
Coord< int > | size, | ||
Coord< double > | scale, | ||
GdkInterpType | interpType | ||
) | const |
ウィジェット上に画像を描画する
widget | 描画対象の widget |
offset | 画像をシフトする量 |
size | 画像を描画する大きさ |
scale | 画像の拡大・縮小率 |
interpType | 拡大・縮小時の補間方法 |
void PixbufLayers::eraseLayer | ( | ) |
現在のレイヤを消去する
下地となる 0 番目のレイヤは消去できないことに注意。現在のレイヤが 0 番目なら何も処理しない。
現在のレイヤ番号は変化しない(消去したレイヤの上側のレイヤが対象になる)。 但し、現在のレイヤが最上位だった場合は番号が一つ減ることになる。
|
inline |
現在のレイヤ番号を返す
void PixbufLayers::initLayer | ( | Coord< int > | size, |
RGB | rgb, | ||
bool | hasAlpha, | ||
RGB::primary_type | alpha | ||
) |
指定したサイズの画像で初期化する
全てのレイヤはいったんクリアされる
size | 画像サイズ |
rgb | 初期化時に塗りつぶす RGB 成分 |
hasAlpha | アルファ・チャンネルを持つ場合は true |
alpha | 合成時のアルファ・チャンネル |
Coord< double > PixbufLayers::layerCoord | ( | Coord< double > | c | ) | const |
現レイヤのキャンバスに対する相対位置を求める
c | キャンバス上の位置 |
|
inline |
レイヤ数を返す
void PixbufLayers::loadFromFile | ( | const std::string & | fileName | ) |
指定したファイルの画像で初期化する
全てのレイヤはいったんクリアされる
fileName | 読み込む画像ファイル名 |
|
virtual |
指定した座標のパレットを取得する
座標は現レイヤを基準とする。レイヤにオフセットが指定されていた場合は補正を掛ける必要があることに注意。 補正には PixbufLayers::layerCoord を利用する。 レイヤの範囲外を指定した場合は何もせず false を返す。
c | パレットを取得する座標 |
palet | 取得したパレットを返すポインタ |
DrawingArea_IFを実装しています。
|
virtual |
指定した座標にパレットをセットする
座標は現レイヤを基準とする。レイヤにオフセットが指定されていた場合は補正を掛ける必要があることに注意。 補正には PixbufLayers::layerCoord を利用する。 レイヤの範囲外を指定した場合は何もせず false を返す。
c | パレットをセットする座標 |
palet | セットするパレット |
DrawingArea_IFを実装しています。
|
virtual |
void PixbufLayers::setCurrentLayer | ( | size_type | index | ) |
現在のレイヤ番号を変更する
指定した添字が範囲外だった場合は例外 std::out_of_range を投げる
index | 新しいレイヤ番号 |
|
virtual |
void PixbufLayers::superimpose | ( | ) |
現在のレイヤを下側の画像に重ね合わせる
現在のレイヤが 0 番目なら何も処理しない。 重ねあわせた後、現在のレイヤは消去される。消去後のレイヤ番号については PixbufLayers::eraseLayer を参照のこと。