- メインページ
- モジュール
- ネームスペース
- データ構造
- ファイル

- データ構造
- データ構造索引
- クラス階層
- データフィールド

Public 型 | Public メソッド | Protected 型 | Protected メソッド | Static Protected メソッド | Protected 変数
クラス テンプレート mist::bitmap< BITS, Allocator >

要素数が可変のビットマップ画像を扱うクラス [詳細]

`#include <bitmap.h>`

mist::bitmap< BITS, Allocator >に対する継承グラフ

## 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 型と同じ
Public 型 inherited from mist::array< unsigned char, Allocator >
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 配列で同じ要素型のものを用いて初期化する
Public メソッド inherited from mist::array< unsigned char, Allocator >
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 ポインタを返す
Protected メソッド inherited from mist::array< unsigned char, Allocator >
pointer | paccess (size_type index)
| index で示される位置の要素のポインタを返す
const_pointer | paccess (size_type index) const
| index で示される位置の要素の const ポインタを返す

## Static Protected メソッド
static size_type | pixel_bytes ()
| １画素を表現するのに用いるバイト数
static size_type | num_bytes (size_type width)
| １行あたりに使用するバイト数

## Protected 変数
size_type | size1_
| X軸方向の要素数
size_type | size2_
| Y軸方向の要素数
size_type | nbytes_
| １行あたりのバイト数
Protected 変数 inherited from mist::array< unsigned char, Allocator >
mist_allocator< unsigned char, Allocator > | allocator_
| 各コンテナで利用するアロケータオブジェクト
unsigned char * | data_
| コンテナで扱うデータの先頭を表すポインタ

## 説明

### template<size_t BITS, class Allocator = std::allocator< unsigned char >>
class mist::bitmap< BITS, Allocator >

要素数が可変のビットマップ画像を扱うクラス

2次元画像を扱うための基本クラス （mist/bitmap.h をインクルードする）

注意
  MISTで提供するほとんどのアルゴリズムに対して本コンテナを直接利用することはできません．
  MISTのアルゴリズムを利用する場合は， mist::convert のコンバート関数を利用して，array2 型に変換してから行ってください．

引数

  BITS | … ビットマップで利用する1画素あたりのビット数（24ビットと32ビットのみをサポート）
  Allocator | … MISTコンテナが利用するアロケータ型．省略した場合は，STLのデフォルトアロケータを使用する

## コンストラクタとデストラクタ

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
template<size_t BBITS, class AAlocator >

mist::bitmap< BITS, Allocator >::bitmap | ( | const bitmap< BBITS, AAlocator > & | o | ) |
| inline

他の bitmap 配列で要素の型が異なるものから同じ要素数の配列を作成する

注意
  異なる要素型間でデータの変換が可能でなくてはならない

参照先 mist::bitmap< BITS, Allocator >::size1(), と mist::bitmap< BITS, Allocator >::size2().

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
template<class TT , class AAlocator >

mist::bitmap< BITS, Allocator >::bitmap | ( | const array2< TT, AAlocator > & | o | ) |
| inline

他の array2 配列で要素の型が異なるものから同じ要素数の配列を作成する

注意
  異なる要素型間でデータの変換が可能でなくてはならない

参照先 mist::array2< T, Allocator >::size1(), と mist::array2< T, Allocator >::size2().

## 関数

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

reference mist::bitmap< BITS, Allocator >::at | ( | size_type | i,
|  | size_type | j,
|  | size_type | dmy = `0`
| ) |  |
| inline

( i, j ) で示される位置の要素の参照を返す

DEBUG マクロを有効にした（NDEBUGマクロを定義しない）場合は，指定された ( i, j ) が有効な範囲内にあるかをチェックする

引数

  [in] | i | … コンテナ内のX軸方向の位置
  [in] | j | … コンテナ内のY軸方向の位置
  [in] | dmy | … 使用しない

戻り値
  指定された要素を示す参照

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

const_reference mist::bitmap< BITS, Allocator >::at | ( | size_type | i,
|  | size_type | j,
|  | size_type | dmy = `0`
| ) |  | const
| inline

( i, j ) で示される位置の要素の const 参照を返す

DEBUG マクロを有効にした（NDEBUGマクロを定義しない）場合は，指定された ( i, j ) が有効な範囲内にあるかをチェックする

引数

  [in] | i | … コンテナ内のX軸方向の位置
  [in] | j | … コンテナ内のY軸方向の位置
  [in] | dmy | … 使用しない

戻り値
  指定された要素を示す const 参照

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

void mist::bitmap< BITS, Allocator >::clear | ( |  | ) |
| inline

コンテナの要素を空にする

コンテナに格納されているデータを全て削除し，コンテナを空（要素数0）にする

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

reference mist::bitmap< BITS, Allocator >::operator() | ( | size_type | i,
|  | size_type | j,
|  | size_type | dmy = `0`
| ) |  |
| inline

( i, j ) で示される位置の要素の参照を返す

DEBUG マクロを有効にした（NDEBUGマクロを定義しない）場合は，指定された ( i, j ) が有効な範囲内にあるかをチェックする

引数

  [in] | i | … コンテナ内のX軸方向の位置
  [in] | j | … コンテナ内のY軸方向の位置
  [in] | dmy | … 使用しない

戻り値
  指定された要素を示す参照

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

const_reference mist::bitmap< BITS, Allocator >::operator() | ( | size_type | i,
|  | size_type | j,
|  | size_type | dmy = `0`
| ) |  | const
| inline

( i, j ) で示される位置の要素の const 参照を返す

DEBUG マクロを有効にした（NDEBUGマクロを定義しない）場合は，指定された ( i, j ) が有効な範囲内にあるかをチェックする

引数

  [in] | i | … コンテナ内のX軸方向の位置
  [in] | j | … コンテナ内のY軸方向の位置
  [in] | dmy | … 使用しない

戻り値
  指定された要素を示す const 参照

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
template<size_t BBITS, class AAlocator >

const bitmap& mist::bitmap< BITS, Allocator >::operator= | ( | const bitmap< BBITS, AAlocator > & | o | ) |
| inline

要素の型が異なるコンテナを代入する

コピー元であるコンテナ o と全く同じコンテナを作成する． コピー先（ここでは自分自身）の要素数が o と異なる場合は，自動的にサイズを調整する． コピー元とコピー先でデータ型（array< data > の data）が異なる場合の代入を行う．

引数

  [in] | o | … コピー元のコンテナ

戻り値
  自分自身

参照先 mist::bitmap< BITS, Allocator >::size1(), と mist::bitmap< BITS, Allocator >::size2().

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
template<class TT , class AAlocator >

const bitmap& mist::bitmap< BITS, Allocator >::operator= | ( | const array2< TT, AAlocator > & | o | ) |
| inline

要素の型が異なるコンテナを代入する

コピー元であるコンテナ o と全く同じコンテナを作成する． コピー先（ここでは自分自身）の要素数が o と異なる場合は，自動的にサイズを調整する． コピー元とコピー先でデータ型（array< data > の data）が異なる場合の代入を行う．

引数

  [in] | o | … コピー元のコンテナ

戻り値
  自分自身

参照先 mist::array2< T, Allocator >::size1(), と mist::array2< T, Allocator >::size2().

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

const bitmap& mist::bitmap< BITS, Allocator >::operator= | ( | const bitmap< BITS, Allocator > & | o | ) |
| inline

要素の型が異なるコンテナを代入する

コピー元であるコンテナ o と全く同じコンテナを作成する． コピー先（ここでは自分自身）の要素数が o と異なる場合は，自動的にサイズを調整する．

引数

  [in] | o | … コピー元のコンテナ

戻り値
  自分自身

参照先 mist::bitmap< BITS, Allocator >::size1_, と mist::bitmap< BITS, Allocator >::size2_.

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

reference mist::bitmap< BITS, Allocator >::operator[] | ( | size_type | index | ) |
| inline

index で示される位置の要素の参照を返す

DEBUG マクロを有効にした（NDEBUGマクロを定義しない）場合は，指定された index が有効な範囲内にあるかをチェックする

引数

  [in] | index | … コンテナ内の要素位置

戻り値
  指定された要素を示す参照

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

reference mist::bitmap< BITS, Allocator >::operator[] | ( | size_type | index | ) | const
| inline

index で示される位置の要素の参照を返す

DEBUG マクロを有効にした（NDEBUGマクロを定義しない）場合は，指定された index が有効な範囲内にあるかをチェックする

引数

  [in] | index | … コンテナ内の要素位置

戻り値
  指定された要素を示す参照

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

pointer mist::bitmap< BITS, Allocator >::paccess | ( | size_type | i,
|  | size_type | j
| ) |  |
| inline protected

index で示される位置の要素のポインタを返す

引数

  [in] | i | … コンテナ内のX軸方向の位置
  [in] | j | … コンテナ内のY軸方向の位置

戻り値
  指定された要素を示すポインタ

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

const_pointer mist::bitmap< BITS, Allocator >::paccess | ( | size_type | i,
|  | size_type | j
| ) |  | const
| inline protected

index で示される位置の要素の const ポインタを返す

引数

  [in] | i | … コンテナ内のX軸方向の位置
  [in] | j | … コンテナ内のY軸方向の位置

戻り値
  指定された要素を示すポインタ

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

bool mist::bitmap< BITS, Allocator >::resize | ( | size_type | num1,
|  | size_type | num2,
|  | size_type | dmy1 = `0`
| ) |  |
| inline

コンテナ内の要素数を変更する

要素数を num1 × num2 個に変更し，要素数が変更された場合のみ全ての要素を値デフォルト値で初期化する．

注意
  必ず要素を初期化するためには，fill 関数を利用してください．

引数

  [in] | num1 | … リサイズ後のX軸方向の要素数
  [in] | num2 | … リサイズ後のY軸方向の要素数
  [in] | dmy1 | … ダミー変数（使用しない）

戻り値

  true | … 正常にリサイズが終了
  false | … リサイズ後のメモリを確保できなかった場合

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

bool mist::bitmap< BITS, Allocator >::swap | ( | bitmap< BITS, Allocator > & | a | ) |
| inline

コンテナ内の全ての内容を入れ替える．

入れ替え元のコンテナ a の中身と全て入れ替える

引数

  [in] | a | … 内容を入れ替える対象

戻り値

  true | … データのスワップに成功
  false | … データのスワップに失敗

参照先 mist::bitmap< BITS, Allocator >::size1_, と mist::bitmap< BITS, Allocator >::size2_.

template<size_t BITS, class Allocator = std::allocator< unsigned char >>

bool mist::bitmap< BITS, Allocator >::trim | ( | size_type | x,
|  | size_type | y,
|  | difference_type | w = `-1`,
|  | difference_type | h = `-1`
| ) |  |
| inline

コンテナ内の要素をトリミングする

引数

  [in] | x | … トリミングのX軸方向の開始位置（ゼロから始まるインデックス）
  [in] | y | … トリミングのY軸方向の開始位置（ゼロから始まるインデックス）
  [in] | w | … トリミング後のX軸方向の要素数（-1の場合は，最後までをコピーする）
  [in] | h | … トリミング後のY軸方向の要素数（-1の場合は，最後までをコピーする）

戻り値

  true | … トリミングに成功した場合（元とサイズが変わらない場合も含む）
  false | … 不正なトリミングを行おうとした場合

このクラスの説明は次のファイルから生成されました:

- bitmap.h