要素数が可変のビットマップ画像を扱うクラス [詳細]
#include <bitmap.h>
Public 型 | |
typedef bitmap_type< BITS > ::value_type | value_type |
内部データ型 | |
typedef value_type * | pointer |
データ型のポインター型.data の場合,data * となる | |
typedef value_type & | reference |
データ型の参照.data の場合,data & となる | |
typedef const value_type & | const_reference |
MISTのコンテナ内に格納するデータ型の const 参照.mist::array< data > の場合,const data & となる | |
typedef const value_type * | const_pointer |
MISTのコンテナ内に格納するデータ型の const ポインター型.mist::array< data > の場合,const data * となる | |
typedef Allocator::size_type | size_type |
符号なしの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には size_t 型と同じ | |
typedef Allocator::difference_type | difference_type |
符号付きの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には ptrdiff_t 型と同じ | |
![]() | |
typedef Allocator | allocator_type |
MISTコンテナが利用するアロケータ型 | |
typedef Allocator::reference | reference |
MISTのコンテナ内に格納するデータ型の参照.mist::array< data > の場合,data & となる | |
typedef Allocator::const_reference | const_reference |
MISTのコンテナ内に格納するデータ型の const 参照.mist::array< data > の場合,const data & となる | |
typedef Allocator::value_type | value_type |
MISTのコンテナ内に格納するデータ型.mist::array< data > の data と同じ | |
typedef Allocator::size_type | size_type |
符号なしの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には size_t 型と同じ | |
typedef Allocator::difference_type | difference_type |
符号付きの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には ptrdiff_t 型と同じ | |
typedef Allocator::pointer | pointer |
MISTのコンテナ内に格納するデータ型のポインター型.mist::array< data > の場合,data * となる | |
typedef Allocator::const_pointer | const_pointer |
MISTのコンテナ内に格納するデータ型の const ポインター型.mist::array< data > の場合,const data * となる | |
typedef mist_iterator1 < unsigned char, ptrdiff_t, pointer, reference > | iterator |
MISTのコンテナ内を操作する,STLで言う順方向のランダムアクセスイテレータ | |
typedef mist_iterator1 < unsigned char, ptrdiff_t, const_pointer, const_reference > | const_iterator |
MISTのコンテナ内を操作する,順方向のランダムアクセスイテレータのコンスト版 | |
typedef mist_reverse_iterator < mist_iterator1< unsigned char, ptrdiff_t, pointer, reference > > | reverse_iterator |
MISTのコンテナ内を操作する,逆方向のランダムアクセスイテレータ | |
typedef mist_reverse_iterator < mist_iterator1< unsigned char, ptrdiff_t, const_pointer, const_reference > > | const_reverse_iterator |
MISTのコンテナ内を操作する,逆方向のランダムアクセスイテレータのコンスト版 |
Public メソッド | |
bool | resize (size_type num1, size_type num2, size_type dmy1=0) |
コンテナ内の要素数を変更する | |
bool | trim (size_type x, size_type y, difference_type w=-1, difference_type h=-1) |
コンテナ内の要素をトリミングする | |
bool | swap (bitmap &a) |
コンテナ内の全ての内容を入れ替える. | |
void | clear () |
コンテナの要素を空にする | |
size_type | size1 () const |
X軸方向のコンテナに格納されているデータ数を返す | |
size_type | size2 () const |
Y軸方向のコンテナに格納されているデータ数を返す | |
size_type | width () const |
X軸方向のコンテナに格納されているデータ数を返す | |
size_type | height () const |
Y軸方向のコンテナに格納されているデータ数を返す | |
size_type | size () const |
コンテナに格納されているデータ数を返す | |
template<size_t BBITS, class AAlocator > | |
const bitmap & | operator= (const bitmap< BBITS, AAlocator > &o) |
要素の型が異なるコンテナを代入する | |
template<class TT , class AAlocator > | |
const bitmap & | operator= (const array2< TT, AAlocator > &o) |
要素の型が異なるコンテナを代入する | |
const bitmap & | operator= (const bitmap &o) |
要素の型が異なるコンテナを代入する | |
reference | operator[] (size_type index) |
index で示される位置の要素の参照を返す | |
reference | operator[] (size_type index) const |
index で示される位置の要素の参照を返す | |
reference | at (size_type i, size_type j, size_type dmy=0) |
( i, j ) で示される位置の要素の参照を返す | |
const_reference | at (size_type i, size_type j, size_type dmy=0) const |
( i, j ) で示される位置の要素の const 参照を返す | |
reference | operator() (size_type i, size_type j, size_type dmy=0) |
( i, j ) で示される位置の要素の参照を返す | |
const_reference | operator() (size_type i, size_type j, size_type dmy=0) const |
( i, j ) で示される位置の要素の const 参照を返す | |
bitmap () | |
ディフォルトコンストラクタ.要素数 0,解像度 1.0 × 1.0 のコンテナを作成する | |
bitmap (const Allocator &a) | |
アロケータ a のコピーを利用する | |
bitmap (size_type num1, size_type num2) | |
要素数 num1 × num2 個のコンテナを作成し,デフォルト値で要素を初期化する | |
bitmap (size_type num1, size_type num2, const Allocator &a) | |
要素数 num1 × num2 個のコンテナを作成し,使用するアロケータを a に設定する | |
bitmap (size_type num1, size_type num2, const value_type &val) | |
要素数 num1 × num2 個のコンテナを作成し,全要素を val で初期化する | |
bitmap (size_type num1, size_type num2, const value_type &val, const Allocator &a) | |
要素数 num1 × num2 個のコンテナを作成し,全要素を val で初期化し,使用するアロケータを a に設定する | |
bitmap (size_type num1, size_type num2, void *ptr, size_type mem_available) | |
ptr が指すメモリ領域に,要素数 num1 × num2 個のコンテナを作成する(ptr が指す先の利用可能なメモリ量は mem_available ) | |
bitmap (size_type num1, size_type num2, const value_type &val, void *ptr, size_type mem_available) | |
ptr が指すメモリ領域に,要素数 num1 × num2 個のコンテナを作成し,全要素を val で初期化する(ptr が指す先の利用可能なメモリ量は mem_available ) | |
template<size_t BBITS, class AAlocator > | |
bitmap (const bitmap< BBITS, AAlocator > &o) | |
他の bitmap 配列で要素の型が異なるものから同じ要素数の配列を作成する | |
template<class TT , class AAlocator > | |
bitmap (const array2< TT, AAlocator > &o) | |
他の array2 配列で要素の型が異なるものから同じ要素数の配列を作成する | |
bitmap (const bitmap< BITS, Allocator > &o) | |
他の bitmap 配列で同じ要素型のものを用いて初期化する | |
![]() | |
bool | trim (array &out, size_type index, difference_type num=-1) const |
コンテナ内の要素をトリミングする | |
bool | trim (size_type index, difference_type num=-1) |
コンテナ内の要素をトリミングする | |
bool | swap (array &a) |
コンテナ内の全ての内容を入れ替える. | |
void | fill () |
コンテナ内のデータ要素をデフォルト値で初期化する | |
void | fill (const value_type &val) |
コンテナ内のデータ要素を指定された値で初期化する | |
bool | empty () const |
コンテナが空かどうかを判定 | |
size_type | size3 () const |
Z軸方向のコンテナに格納されているデータ数を返す(常に1を返す) | |
size_type | depth () const |
Z軸方向のコンテナに格納されているデータ数を返す(常に1を返す) | |
double | reso1 (double) |
X軸方向の解像度を返す | |
double | reso1 () const |
X軸方向の解像度を設定する | |
double | reso2 (double) |
Y軸方向の解像度を返す | |
double | reso2 () const |
Y軸方向の解像度を設定する | |
double | reso3 (double) |
Z軸方向の解像度を返す | |
double | reso3 () const |
Z軸方向の解像度を設定する) | |
size_type | byte () const |
コンテナ内の要素が占めるデータ量をバイト単位で返す | |
bool | is_memory_shared () const |
外部で割り当てられたメモリ領域を使用しているかどうか | |
iterator | begin () |
コンテナの先頭を指すランダムアクセスイテレータを返す | |
const_iterator | begin () const |
コンテナの先頭を指すコンスト型のコンテナを操作するランダムアクセスイテレータを返す | |
iterator | end () |
コンテナの末尾を指すランダムアクセスイテレータを返す | |
const_iterator | end () const |
コンテナの末尾を指すコンスト型のコンテナを操作するランダムアクセスイテレータを返す | |
reverse_iterator | rbegin () |
コンテナの末尾を指す逆方向ランダムアクセスイテレータを返す | |
const_reverse_iterator | rbegin () const |
コンテナの末尾を指すコンスト型のコンテナを操作する逆方向ランダムアクセスイテレータを返す | |
reverse_iterator | rend () |
コンテナの先頭を指す逆方向ランダムアクセスイテレータを返す | |
const_reverse_iterator | rend () const |
コンテナの先頭を指すコンスト型のコンテナを操作する逆方向ランダムアクセスイテレータを返す | |
size_type | max_size () const |
使用しているアロケータが確保可能なメモリの最大値を返す | |
const array & | operator= (const array< TT, AAlocator > &o) |
要素の型が異なるコンテナを代入する | |
const array & | operator= (const array &o) |
要素の型が異なるコンテナを代入する | |
array () | |
ディフォルトコンストラクタ.要素数 0 のコンテナを作成する | |
array (const Allocator &a) | |
アロケータ a のコピーを利用する | |
array (size_type num) | |
要素数 num 個のコンテナを作成し,デフォルト値で要素を初期化する | |
array (size_type num, const Allocator &a) | |
要素数 num 個のコンテナを作成し,アロケータ a のコピーを利用する | |
array (size_type num, const value_type &val) | |
要素数 num 個のコンテナを作成し,値 val で初期化する | |
array (size_type num, const value_type &val, const Allocator &a) | |
要素数 num 個のコンテナを作成し,値 val で初期化し,アロケータ a のコピーを利用する | |
array (const_iterator s, const_iterator e) | |
イテレータ s と e の範囲の値を用いて,配列を初期化する | |
array (const_iterator s, const_iterator e, const Allocator &a) | |
イテレータ s と e の範囲の値を用いて,配列を初期化し,アロケータ a のコピーを利用する | |
array (size_type num, pointer ptr, size_type mem_available) | |
ptr が指すメモリ領域に,要素数 num 個のコンテナを作成する(ptr が指す先の利用可能なメモリ量は mem_available ) | |
array (size_type num, const value_type &val, pointer ptr, size_type mem_available) | |
ptr が指すメモリ領域に,要素数 num 個のコンテナを作成し値 val で初期化する(ptr が指す先の利用可能なメモリ量は mem_available ) | |
array (const array< TT, AAlocator > &o) | |
他の array 配列で要素の型が異なるものから同じ要素数の配列を作成する | |
array (const array< unsigned char, Allocator > &o) | |
他の array 配列で同じ要素型のものを用いて初期化する | |
~array () | |
コンテナが利用しているリソースを全て開放する |
Protected 型 | |
typedef array< unsigned char, Allocator > | base |
基底クラス |
Protected メソッド | |
pointer | paccess (size_type i, size_type j) |
index で示される位置の要素のポインタを返す | |
const_pointer | paccess (size_type i, size_type j) const |
index で示される位置の要素の const ポインタを返す | |
![]() | |
pointer | paccess (size_type index) |
index で示される位置の要素のポインタを返す | |
const_pointer | paccess (size_type index) const |
index で示される位置の要素の const ポインタを返す |
Static Protected メソッド | |
static size_type | pixel_bytes () |
1画素を表現するのに用いるバイト数 | |
static size_type | num_bytes (size_type width) |
1行あたりに使用するバイト数 |
Protected 変数 | |
size_type | size1_ |
X軸方向の要素数 | |
size_type | size2_ |
Y軸方向の要素数 | |
size_type | nbytes_ |
1行あたりのバイト数 | |
![]() | |
mist_allocator< unsigned char, Allocator > | allocator_ |
各コンテナで利用するアロケータオブジェクト | |
unsigned char * | data_ |
コンテナで扱うデータの先頭を表すポインタ |
要素数が可変のビットマップ画像を扱うクラス
2次元画像を扱うための基本クラス (mist/bitmap.h をインクルードする)
BITS | … ビットマップで利用する1画素あたりのビット数(24ビットと32ビットのみをサポート) |
Allocator | … MISTコンテナが利用するアロケータ型.省略した場合は,STLのデフォルトアロケータを使用する |
|
inline |
他の bitmap 配列で要素の型が異なるものから同じ要素数の配列を作成する
参照先 mist::bitmap< BITS, Allocator >::size1(), と mist::bitmap< BITS, Allocator >::size2().
|
inline |
他の array2 配列で要素の型が異なるものから同じ要素数の配列を作成する
参照先 mist::array2< T, Allocator >::size1(), と mist::array2< T, Allocator >::size2().
|
inline |
( i, j ) で示される位置の要素の参照を返す
DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された ( i, j ) が有効な範囲内にあるかをチェックする
[in] | i | … コンテナ内のX軸方向の位置 |
[in] | j | … コンテナ内のY軸方向の位置 |
[in] | dmy | … 使用しない |
mist::array< unsigned char, Allocator >を再定義しています。
|
inline |
( i, j ) で示される位置の要素の const 参照を返す
DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された ( i, j ) が有効な範囲内にあるかをチェックする
[in] | i | … コンテナ内のX軸方向の位置 |
[in] | j | … コンテナ内のY軸方向の位置 |
[in] | dmy | … 使用しない |
mist::array< unsigned char, Allocator >を再定義しています。
|
inline |
コンテナの要素を空にする
コンテナに格納されているデータを全て削除し,コンテナを空(要素数0)にする
mist::array< unsigned char, Allocator >を再定義しています。
|
inline |
( i, j ) で示される位置の要素の参照を返す
DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された ( i, j ) が有効な範囲内にあるかをチェックする
[in] | i | … コンテナ内のX軸方向の位置 |
[in] | j | … コンテナ内のY軸方向の位置 |
[in] | dmy | … 使用しない |
mist::array< unsigned char, Allocator >を再定義しています。
|
inline |
( i, j ) で示される位置の要素の const 参照を返す
DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された ( i, j ) が有効な範囲内にあるかをチェックする
[in] | i | … コンテナ内のX軸方向の位置 |
[in] | j | … コンテナ内のY軸方向の位置 |
[in] | dmy | … 使用しない |
mist::array< unsigned char, Allocator >を再定義しています。
|
inline |
要素の型が異なるコンテナを代入する
コピー元であるコンテナ o と全く同じコンテナを作成する. コピー先(ここでは自分自身)の要素数が o と異なる場合は,自動的にサイズを調整する. コピー元とコピー先でデータ型(array< data > の data)が異なる場合の代入を行う.
[in] | o | … コピー元のコンテナ |
参照先 mist::bitmap< BITS, Allocator >::size1(), と mist::bitmap< BITS, Allocator >::size2().
|
inline |
要素の型が異なるコンテナを代入する
コピー元であるコンテナ o と全く同じコンテナを作成する. コピー先(ここでは自分自身)の要素数が o と異なる場合は,自動的にサイズを調整する. コピー元とコピー先でデータ型(array< data > の data)が異なる場合の代入を行う.
[in] | o | … コピー元のコンテナ |
参照先 mist::array2< T, Allocator >::size1(), と mist::array2< T, Allocator >::size2().
|
inline |
要素の型が異なるコンテナを代入する
コピー元であるコンテナ o と全く同じコンテナを作成する. コピー先(ここでは自分自身)の要素数が o と異なる場合は,自動的にサイズを調整する.
[in] | o | … コピー元のコンテナ |
参照先 mist::bitmap< BITS, Allocator >::size1_, と mist::bitmap< BITS, Allocator >::size2_.
|
inline |
index で示される位置の要素の参照を返す
DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された index が有効な範囲内にあるかをチェックする
[in] | index | … コンテナ内の要素位置 |
mist::array< unsigned char, Allocator >を再定義しています。
|
inline |
index で示される位置の要素の参照を返す
DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された index が有効な範囲内にあるかをチェックする
[in] | index | … コンテナ内の要素位置 |
mist::array< unsigned char, Allocator >を再定義しています。
|
inlineprotected |
index で示される位置の要素のポインタを返す
[in] | i | … コンテナ内のX軸方向の位置 |
[in] | j | … コンテナ内のY軸方向の位置 |
|
inlineprotected |
index で示される位置の要素の const ポインタを返す
[in] | i | … コンテナ内のX軸方向の位置 |
[in] | j | … コンテナ内のY軸方向の位置 |
|
inline |
コンテナ内の要素数を変更する
要素数を num1 × num2 個に変更し,要素数が変更された場合のみ全ての要素を値デフォルト値で初期化する.
[in] | num1 | … リサイズ後のX軸方向の要素数 |
[in] | num2 | … リサイズ後のY軸方向の要素数 |
[in] | dmy1 | … ダミー変数(使用しない) |
true | … 正常にリサイズが終了 |
false | … リサイズ後のメモリを確保できなかった場合 |
mist::array< unsigned char, Allocator >を再定義しています。
|
inline |
コンテナ内の全ての内容を入れ替える.
入れ替え元のコンテナ a の中身と全て入れ替える
[in] | a | … 内容を入れ替える対象 |
true | … データのスワップに成功 |
false | … データのスワップに失敗 |
参照先 mist::bitmap< BITS, Allocator >::size1_, と mist::bitmap< BITS, Allocator >::size2_.
|
inline |
コンテナ内の要素をトリミングする
[in] | x | … トリミングのX軸方向の開始位置(ゼロから始まるインデックス) |
[in] | y | … トリミングのY軸方向の開始位置(ゼロから始まるインデックス) |
[in] | w | … トリミング後のX軸方向の要素数(-1の場合は,最後までをコピーする) |
[in] | h | … トリミング後のY軸方向の要素数(-1の場合は,最後までをコピーする) |
true | … トリミングに成功した場合(元とサイズが変わらない場合も含む) |
false | … 不正なトリミングを行おうとした場合 |