FineKernelToolKit 4.2.13
|
画像を生成、管理するクラス [詳解]
#include <FK/Image.h>
公開メンバ関数 | |
fk_Image (int w=0, int h=0) | |
コンストラクタ | |
virtual | ~fk_Image () |
デストラクタ | |
fk_Image (const fk_Image &) | |
コピーコンストラクタ | |
void | init () |
初期化関数 | |
bool | readBMP (const std::string fileName) |
BMP ファイル入力関数 | |
bool | readBMPData (fk_ImType *buf) |
BMP バッファ入力関数 | |
bool | readPNG (const std::string fileName) |
PNG ファイル入力関数 | |
bool | readPNGData (fk_ImType *buf) |
PNG データ入力用関数 | |
bool | readJPG (const std::string fileName) |
JPEG ファイル入力関数 | |
bool | writeBMP (const std::string fileName, const bool transFlg=false) |
BMP ファイル出力関数 | |
bool | writePNG (const std::string fileName, const bool transFlg=true) |
PNG ファイル出力関数 | |
bool | writeJPG (const std::string fileName, int quality=80) |
JPEG ファイル出力関数 | |
void | newImage (int w, int h, bool initFlg=true) |
画像領域生成関数 | |
void | copyImage (const fk_Image *image) |
画像データコピー関数1 | |
void | copyImage (const fk_Image *image, int x, int y) |
画像データコピー関数2 | |
bool | subImage (const fk_Image *image, int x, int y, int w, int h) |
画像データ部分抽出関数 | |
int | getWidth (void) const |
画像横幅取得関数 | |
int | getHeight (void) const |
画像縦幅取得関数 | |
const fk_Dimension * | getImageSize (void) |
画像サイズ取得関数 | |
const fk_Dimension * | getBufferSize (void) |
画像バッファサイズ取得関数 | |
int | getR (int x, int y) const |
ピクセルR要素取得関数 | |
int | getG (int x, int y) const |
ピクセルG要素取得関数 | |
int | getB (int x, int y) const |
ピクセルB要素取得関数 | |
int | getA (int x, int y) const |
ピクセルA要素取得関数 | |
fk_Color | getColor (int x, int y) const |
ピクセル色要素取得関数 | |
bool | setRGBA (int x, int y, int r, int g, int b, int a) |
ピクセル RGBA 値設定関数 | |
bool | setRGB (int x, int y, int r, int g, int b) |
ピクセル RGB 値設定関数 | |
bool | setR (int x, int y, int r) |
ピクセル R 値設定関数 | |
bool | setG (int x, int y, int g) |
ピクセル G 値設定関数 | |
bool | setB (int x, int y, int b) |
ピクセル B 値設定関数 | |
bool | setA (int x, int y, int a) |
ピクセル A 値設定関数 | |
bool | setColor (int x, int y, const fk_Color &col) |
ピクセル色値設定関数 | |
void | fillColor (const fk_Color &col) |
バッファ全体初期化関数1 | |
void | fillColor (int r, int g, int b, int a=0) |
バッファ全体初期化関数2 | |
const fk_ImType * | getBufPointer (void) const |
画像データ配列先頭アドレス取得関数 | |
![]() | |
fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT) | |
コンストラクタ | |
fk_Type | getObjectType (void) const |
タイプ取得関数 | |
画像を生成、管理するクラス
このクラスは、画像データを制御する機能を提供します。 主な利用用途はテクスチャ画像の管理ですが、 画像処理のための基本的な機能を保持しています。 画像データは RGBA 形式で保存されます。 各要素は整数値で最小値は 0、最大値は 255 です。 透過色要素は 0 が完全な透明、255 が完全な不透明を表します。 現バージョンのピクセルサイズの最大値は縦幅横幅共に 65536 までです。
実際の画像サイズと、格納するデータについての関係は getBufferSize() 関数の覚え書きを参照して下さい。
FK::fk_Image::fk_Image | ( | int | w = 0 , |
int | h = 0 |
||
) |
コンストラクタ
[in] | w | 画像の横幅 |
[in] | h | 画像の縦幅 |
|
virtual |
デストラクタ
FK::fk_Image::fk_Image | ( | const fk_Image & | ) |
コピーコンストラクタ
void FK::fk_Image::init | ( | ) |
初期化関数
画像データを初期化します。 画像サイズも (0, 0) となります。
bool FK::fk_Image::readBMP | ( | const std::string | fileName | ) |
BMP ファイル入力関数
BMP (Windows Bitmap) 形式のファイルからデータを読み込みます。
[in] | fileName | ファイル名 |
bool FK::fk_Image::readBMPData | ( | fk_ImType * | buf | ) |
BMP バッファ入力関数
BMP (Windows Bitmap) 形式のバッファからデータを読み込みます。 fk_ImType 型は、OpenGL をサポートしている環境においては GLubyte、 サポートしていない環境では unsigned char 型として定義されています。
[in] | buf | データバッファ |
bool FK::fk_Image::readPNG | ( | const std::string | fileName | ) |
PNG ファイル入力関数
PNG 形式のファイルからデータを読み込みます。
[in] | fileName | ファイル名 |
bool FK::fk_Image::readPNGData | ( | fk_ImType * | buf | ) |
PNG データ入力用関数
PNG 形式のバッファからデータを読み込みます。 fk_ImType 型は、OpenGL をサポートしている環境においては GLubyte、 サポートしていない環境では unsigned char 型として定義されています。
[in] | buf | データバッファ |
bool FK::fk_Image::readJPG | ( | const std::string | fileName | ) |
JPEG ファイル入力関数
JPEG 形式のファイルからデータを読み込みます。
[in] | fileName | ファイル名 |
bool FK::fk_Image::writeBMP | ( | const std::string | fileName, |
const bool | transFlg = false |
||
) |
BMP ファイル出力関数
画像データを BMP (Windows Bitmap) 形式でファイルに保存します。
[in] | fileName | ファイル名 |
[in] | transFlg | true の場合、透過色要素をファイル中に書き出します。 透過色要素は本来 BMP 形式では標準でサポートされておらず、 FK によって利用する画像ファイルの独自拡張となっています。 ただし、透過色要素を埋め込んだ画像ファイルは一般のアプリケーションでも (透過色が追加されていないデータとして)読み込むことは可能です。 false の場合は、データ中の透過色要素をファイルには出力しません。 |
bool FK::fk_Image::writePNG | ( | const std::string | fileName, |
const bool | transFlg = true |
||
) |
PNG ファイル出力関数
画像データを PNG 形式でファイルに保存します。
[in] | fileName | ファイル名 |
[in] | transFlg | true の場合、透過色要素をファイル中に書き出します。 false の場合は、データ中の透過色要素をファイルには出力しません。 |
bool FK::fk_Image::writeJPG | ( | const std::string | fileName, |
int | quality = 80 |
||
) |
JPEG ファイル出力関数
画像データを JPEG 形式でファイルに保存します。 なお、JPEG 形式は透過がサポートされていないので、 画像中に透過色データを出力することはできません。
[in] | fileName | ファイル名 |
[in] | quality | 画像の品質を設定します。 品質が高いほどファイルのサイズは大きくなります。 100 が最高品質、0 が最低品質となります。範囲外の数値が入力された場合、 上下限に丸められます。 |
void FK::fk_Image::newImage | ( | int | w, |
int | h, | ||
bool | initFlg = true |
||
) |
画像領域生成関数
画像データを与えられたサイズに従って生成します。
[in] | w | 画像の横幅 |
[in] | h | 画像の縦幅 |
[in] | initFlg | true の場合は、データ全体を (0, 0, 0, 0) で初期化します。 false の場合は初期化を行いませんが、 その場合でも横幅が変更されたときは 各ピクセルの縦横関係が崩れてしまう可能性があります。 |
void FK::fk_Image::copyImage | ( | const fk_Image * | image | ) |
画像データコピー関数1
画像データを別インスタンスからコピーします。 この引数形式の場合、画像サイズは元画像データと同一となります。
[in] | image | 元画像データのアドレス |
void FK::fk_Image::copyImage | ( | const fk_Image * | image, |
int | x, | ||
int | y | ||
) |
画像データコピー関数2
画像データの部分矩形領域を、別インスタンスの画像データ内容に書き換えます。 この引数形式では、画像中の一部分となる任意領域を書き換えることが可能ですが、 コピー元となる画像全体がコピー先の中に完全に収まるような配置である必要があります。 この条件を満たさなかった場合は、データの書き換えを行いません。 配置の際の座標系は fk_Rect の座標系に従います。
[in] | image | 元画像データのアドレス |
[in] | x | 書き換え領域左上の x 座標 |
[in] | y | 書き換え領域左上の y 座標 |
bool FK::fk_Image::subImage | ( | const fk_Image * | image, |
int | x, | ||
int | y, | ||
int | w, | ||
int | h | ||
) |
画像データ部分抽出関数
別インスタンス中にある画像データの部分矩形領域をコピーします。 指定した矩形領域は全て元画像内に収まっている必要があります。 領域の座標系は fk_Rect の座標系に従います。
[in] | image | 元画像データのアドレス |
[in] | x | 抽出矩形領域左上の x 座標 |
[in] | y | 抽出矩形領域左上の y 座標 |
[in] | w | 抽出矩形領域の横幅 |
[in] | h | 抽出矩形領域の縦幅 |
int FK::fk_Image::getWidth | ( | void | ) | const |
画像横幅取得関数
int FK::fk_Image::getHeight | ( | void | ) | const |
画像縦幅取得関数
const fk_Dimension * FK::fk_Image::getImageSize | ( | void | ) |
画像サイズ取得関数
const fk_Dimension * FK::fk_Image::getBufferSize | ( | void | ) |
画像バッファサイズ取得関数
fk_Image では、本来の画像サイズに対し、 格納するデータ領域はより大きなものとなっています。 この関数は、実際に確保しているデータ領域の大きさを fk_Dimension 型で返すものです。
int FK::fk_Image::getR | ( | int | x, |
int | y | ||
) | const |
ピクセルR要素取得関数
ピクセルのR(赤)要素値を取得します。 座標系は fk_Rect の座標系に従います。
[in] | x | ピクセルの x 座標 |
[in] | y | ピクセルの y 座標 |
int FK::fk_Image::getG | ( | int | x, |
int | y | ||
) | const |
ピクセルG要素取得関数
ピクセルのG(緑)要素値を取得します。 座標系は fk_Rect の座標系に従います。
[in] | x | ピクセルの x 座標 |
[in] | y | ピクセルの y 座標 |
int FK::fk_Image::getB | ( | int | x, |
int | y | ||
) | const |
ピクセルB要素取得関数
ピクセルのB(青)要素値を取得します。 座標系は fk_Rect の座標系に従います。
[in] | x | ピクセルの x 座標 |
[in] | y | ピクセルの y 座標 |
int FK::fk_Image::getA | ( | int | x, |
int | y | ||
) | const |
ピクセルA要素取得関数
ピクセルのA(透過度)要素値を取得します。 座標系は fk_Rect の座標系に従います。
[in] | x | ピクセルの x 座標 |
[in] | y | ピクセルの y 座標 |
fk_Color FK::fk_Image::getColor | ( | int | x, |
int | y | ||
) | const |
bool FK::fk_Image::setRGBA | ( | int | x, |
int | y, | ||
int | r, | ||
int | g, | ||
int | b, | ||
int | a | ||
) |
ピクセル RGBA 値設定関数
ピクセルの RGBA 各色要素を設定します。 座標系は fk_Rect の座標系に従います。 値が 0 から 255 の範囲内になかった場合は、 上下限それぞれに丸められます。 座標が画像内になかった場合は、画像情報を変更しません。
[in] | x | ピクセルの x 座標 |
[in] | y | ピクセルの y 座標 |
[in] | r | R(赤)要素値 |
[in] | g | G(赤)要素値 |
[in] | b | B(赤)要素値 |
[in] | a | A(赤)要素値 |
bool FK::fk_Image::setRGB | ( | int | x, |
int | y, | ||
int | r, | ||
int | g, | ||
int | b | ||
) |
ピクセル RGB 値設定関数
ピクセルの RGB 各色要素を設定します。 座標系は fk_Rect の座標系に従います。 値が 0 から 255 の範囲内になかった場合は、 上下限それぞれに丸められます。 座標が画像内になかった場合は、画像情報を変更しません。
[in] | x | ピクセルの x 座標 |
[in] | y | ピクセルの y 座標 |
[in] | r | R(赤)要素値 |
[in] | g | G(赤)要素値 |
[in] | b | B(赤)要素値 |
bool FK::fk_Image::setR | ( | int | x, |
int | y, | ||
int | r | ||
) |
ピクセル R 値設定関数
ピクセルの R 色要素を設定します。 座標系は fk_Rect の座標系に従います。 値が 0 から 255 の範囲内になかった場合は、 上下限それぞれに丸められます。 座標が画像内になかった場合は、画像情報を変更しません。
[in] | x | ピクセルの x 座標 |
[in] | y | ピクセルの y 座標 |
[in] | r | R(赤)要素値 |
bool FK::fk_Image::setG | ( | int | x, |
int | y, | ||
int | g | ||
) |
ピクセル G 値設定関数
ピクセルの G 色要素を設定します。 座標系は fk_Rect の座標系に従います。 値が 0 から 255 の範囲内になかった場合は、 上下限それぞれに丸められます。 座標が画像内になかった場合は、画像情報を変更しません。
[in] | x | ピクセルの x 座標 |
[in] | y | ピクセルの y 座標 |
[in] | g | G(緑)要素値 |
bool FK::fk_Image::setB | ( | int | x, |
int | y, | ||
int | b | ||
) |
ピクセル B 値設定関数
ピクセルの B 色要素を設定します。 座標系は fk_Rect の座標系に従います。 値が 0 から 255 の範囲内になかった場合は、 上下限それぞれに丸められます。 座標が画像内になかった場合は、画像情報を変更しません。
[in] | x | ピクセルの x 座標 |
[in] | y | ピクセルの y 座標 |
[in] | b | B(青)要素値 |
bool FK::fk_Image::setA | ( | int | x, |
int | y, | ||
int | a | ||
) |
ピクセル A 値設定関数
ピクセルの A 色要素を設定します。 座標系は fk_Rect の座標系に従います。 値が 0 から 255 の範囲内になかった場合は、 上下限それぞれに丸められます。 座標が画像内になかった場合は、画像情報を変更しません。
[in] | x | ピクセルの x 座標 |
[in] | y | ピクセルの y 座標 |
[in] | a | A(透過度)要素値 |
bool FK::fk_Image::setColor | ( | int | x, |
int | y, | ||
const fk_Color & | col | ||
) |
void FK::fk_Image::fillColor | ( | const fk_Color & | col | ) |
バッファ全体初期化関数1
画像データ内の全てのピクセルを同一色で初期化します。 初期化の際には、実際の表示領域ではない部分についても更新を行います。 格納データについては getBufferSize() の覚え書きを参照して下さい。
[in] | col | 色要素値 |
void FK::fk_Image::fillColor | ( | int | r, |
int | g, | ||
int | b, | ||
int | a = 0 |
||
) |
バッファ全体初期化関数2
画像データ内の全てのピクセルを同一色で初期化します。 初期化の際には、実際の表示領域ではない部分についても更新を行います。 格納データについては getBufferSize() の覚え書きを参照して下さい。
[in] | r | R(赤)要素値 |
[in] | g | G(赤)要素値 |
[in] | b | B(赤)要素値 |
[in] | a | A(赤)要素値 |
const fk_ImType * FK::fk_Image::getBufPointer | ( | void | ) | const |
画像データ配列先頭アドレス取得関数
画像データを実際に格納しているデータ配列の先頭アドレスを参照します。