TNB Library
クラス | 公開型 | 公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
CBitmapImage クラス

ビットマップイメージ管理クラス [詳解]

#include <TnbBitmapImage.h>

クラス

class  CRawData
 ビットマップ生データ管理クラス [詳解]
 

公開型

enum  EDirection { Vertical , Horizontal }
 方向 [詳解]
 

公開メンバ関数

bool AlphaBlend (HDC hdc, int x, int y, int parsent=100, int cx=0, int cy=0) const
 [描画] 半透明処理付イメージ描画. [詳解]
 
bool Attach (CBitmapHandle bmp)
 [設定] アタッチ. [詳解]
 
bool BitBlt (HDC hdc, int x, int y, DWORD raster=SRCCOPY) const
 [表示] イメージ描画. [詳解]
 
 CBitmapImage (CBitmapHandle bmp)
 代入コンストラクタ [詳解]
 
 CBitmapImage (const CBitmapImage &other)
 コピーコンストラクタ [詳解]
 
 CBitmapImage (void)
 コンストラクタ [詳解]
 
bool ChangePixelColor (COLORREF r, COLORREF g, COLORREF b)
 [処理] カラー変更. [詳解]
 
int ChangePixelColor (COLORREF targetColor, COLORREF drawColor)
 [処理] カラー変更. [詳解]
 
CBitmapImage Clone (void) const
 [複製] クローン作成 [詳解]
 
CBitmapImage CreateDilationBitmap (void) const
 [作成] 膨張画像作成. [詳解]
 
CBitmapImage CreateErosionBitmap (void) const
 [作成] 収縮画像作成. [詳解]
 
CBitmapImage CreateGrayscaleBitmap (void) const
 [作成] グレイスケール画像作成. [詳解]
 
HBITMAP CreateMaskBitmap (bool boIsReverse=false, COLORREF transColor=CLR_AUTOSELECT) const
 [作成] マスクパターンビットマップ作成. [詳解]
 
CRawData _deprecated CreateRawData (void) const
 [作成] 生データ作成. [詳解]
 
CBitmapImage CreateReverseImage (bool isVertical, bool isHorizontal) const
 [作成] 反転画像作成. [詳解]
 
HRGN CreateRgn (COLORREF transColor=CLR_AUTOSELECT) const
 [作成] リージョン作成. [詳解]
 
CBitmapImage CreateRotateImage (void) const
 [作成] 回転画像作成. [詳解]
 
bool CustomizeAlpha (BYTE alpha)
 [処理] アルファチャネル操作. [詳解]
 
bool CustomizeAlpha (BYTE alpha, COLORREF colorEx, BYTE alphaEx)
 [処理] アルファチャネル操作. [詳解]
 
bool CustomizeAlpha (CBitmapHandle bmp)
 [処理] アルファチャネル操作. [詳解]
 
CBitmapImage Cut (const RECT &rect, int cx=0, int cy=0) const
 [取得] イメージ取り出し. [詳解]
 
CBitmapHandle Detach (void)
 [設定] デタッチ. [詳解]
 
bool Draw (HDC hdc, const POINT &po) const
 [処理] イメージ描画. [詳解]
 
bool Draw (HDC hdc, int x=0, int y=0) const
 [処理] イメージ描画. [詳解]
 
bool DrawTile (HDC hdc, const RECT &rect) const
 [処理] イメージタイル描画. [詳解]
 
void Empty (void)
 [設定] 破棄. [詳解]
 
bool Fill (COLORREF color)
 [処理] 四角描画. [詳解]
 
bool Fill (COLORREF color, const RECT &rect)
 [処理] 四角描画. [詳解]
 
CBitmapHandle GetBitmapHandle (void)
 [取得] ビットマップハンドル取得 [詳解]
 
bool GetBitmapInfo (BITMAPINFOHEADER &_head) const
 [取得] BITMAPINFOHEADER 取得. [詳解]
 
HDC GetDC (void)
 [取得]デバイスコンテキストハンドル取得. [詳解]
 
RGBQUAD * GetRgbDataPtr (INT_PTR y=-1)
 [取得] RGBデータアドレス取得. [詳解]
 
const RGBQUAD * GetRgbDataPtr (INT_PTR y=-1) const
 [取得] RGBデータアドレス取得. [詳解]
 
const SIZE & GetSize (void) const
 [取得] イメージサイズ取得. [詳解]
 
bool GradationFill (COLORREF color1, COLORREF color2, bool boIsHorizontal, const RECT *pRect=NULL)
 [処理] グラデーション描画. [詳解]
 
bool GradationFill (COLORREF color1, COLORREF color2, EDirection direction, const RECT *pRect=NULL)
 [処理] グラデーション描画. [詳解]
 
bool GradientFill (const PTRIVERTEX pVertex, DWORD dwNumVertex, const PGRADIENT_RECT pMesh, DWORD dwNumMesh, bool boIsHorizontal)
 [処理] グラデーション描画. [詳解]
 
bool HasRgbData (void) const
 [確認] RGBデータ有無. [詳解]
 
bool Insert (int x, int y, const CBitmapImage &bmpimg, DWORD raster=SRCCOPY, int cx=0, int cy=0)
 [挿入] イメージ挿入. [詳解]
 
bool InsertEx (int x, int y, HBITMAP hBitmap, UINT uExFlag=DSS_NORMAL)
 [挿入] イメージ挿入. [詳解]
 
bool InsertOnAlphaBlend (int x, int y, const CBitmapImage &bmpimg, int parsent=100, int cx=0, int cy=0)
 [挿入] 半透過処理付イメージ挿入. [詳解]
 
bool InsertOnSemitransparect (int x, int y, const CBitmapImage &bmpimg, int parsent=100, COLORREF color=CLR_AUTOSELECT)
 [挿入] 半透明イメージ挿入(透過色付). [詳解]
 
bool InsertOnTransparent (int x, int y, const CBitmapImage &bmpimg, COLORREF color=CLR_AUTOSELECT, int cx=0, int cy=0)
 [挿入] 透過処理付イメージ挿入. [詳解]
 
bool IsEmpty (void) const
 [確認] Empty状態確認. [詳解]
 
CBitmapImage MedianFilter (void) const
 [作成] メディアンフィルター画像作成. [詳解]
 
 operator CBitmapHandle (void)
 [取得] HBITMAP 取得 [詳解]
 
CBitmapImageoperator= (const CBitmapImage &other)
 コピーオペレータ [詳解]
 
DWORD Paint (int x, int y, COLORREF c)
 [描画] ペイント. [詳解]
 
bool ReleaseDC (void)
 [設定] デバイスコンテキストハンドル返却. [詳解]
 
DWORD Save (LPCTSTR lpszFileName, WORD bitsPixel=0)
 [作成] BMPファイル作成. [詳解]
 
bool SemitransparectBlt (HDC hdc, int x, int y, int parsent=100, COLORREF color=CLR_AUTOSELECT) const
 [挿入] 半透明,透過イメージ描画. [詳解]
 
bool Set (CBitmapHandle bmp)
 [設定] イメージ設定. [詳解]
 
bool Set (const CBitmapImage &bmpimg, int cx=0, int cy=0)
 [設定] イメージ設定. [詳解]
 
bool _deprecated Set (const CRawData &rawData)
 [設定] 生データからイメージ設定. [詳解]
 
bool Set (int cx, int cy, COLORREF color=CLR_INVALID)
 [設定] イメージ設定. [詳解]
 
bool SetEx (HDC hDC, int cx, int cy, COLORREF color=CLR_INVALID)
 [設定] 拡張イメージ設定. [詳解]
 
bool SetFromClient (HWND hWnd, COLORREF backColor=CLR_INVALID)
 [設定] クライアントからイメージ設定. [詳解]
 
bool SetFromClient (HWND hWnd, const RECT &rect, COLORREF backColor=CLR_INVALID)
 [設定] クライアントからイメージ設定. [詳解]
 
bool SetFromDC (HDC hdc, const RECT &rect, int cx=0, int cy=0)
 [設定] DCからイメージ設定. [詳解]
 
bool SetFromIcon (HICON hIcon, COLORREF backColor)
 [作成] ICONからイメージ設定. [詳解]
 
bool SetFromWindow (HWND hWnd, COLORREF backColor=CLR_INVALID, LPARAM mode=PRF_CLIENT|PRF_ERASEBKGND|PRF_NONCLIENT|PRF_OWNED)
 [設定] ウィンドウからイメージ設定. [詳解]
 
void SetStretchBltMode (int nStretchMode)
 [設定] ビットマップ伸縮モード設定. [詳解]
 
void SetWorkWnd (HWND h)
 [設定] ワークデバイスコンテキスト設定. [詳解]
 
bool StretchBlt (HDC hdc, int x, int y, DWORD raster=SRCCOPY, int cx=0, int cy=0) const
 [表示] イメージ描画. [詳解]
 
bool ToHaveRgbData (void)
 [設定] RGBデータ準備. [詳解]
 
bool TransparentBit (HDC hdc, int x, int y, COLORREF color=CLR_AUTOSELECT, int cx=0, int cy=0) const
 [表示] 透過処理付イメージ描画. [詳解]
 
virtual ~CBitmapImage (void)
 デストラクタ [詳解]
 

静的公開メンバ関数

static void CalcAdjustRect (RECT &_rect, const SIZE &dstSize, const SIZE &srcSize)
 [計算] 表示位置調整. [詳解]
 
static CBitmapHandle ChangeByDpi (CBitmapHandle bmp)
 [作成] 画像縮小拡大 [詳解]
 
static bool GetBitmapSize (SIZE &_size, HBITMAP hBitmap)
 [取得] ビットマップサイズ取得. [詳解]
 
static HBITMAP _deprecated Load (LPCTSTR lpszFileName, int cx=0, int cy=0, UINT fuLoad=LR_CREATEDIBSECTION)
 [読込] BMPファイル読込み. [詳解]
 
static HBITMAP _deprecated Load (UINT uBitmapResourceId, int cx=0, int cy=0, UINT fuLoad=LR_CREATEDIBSECTION)
 [読込] リソース読込み [詳解]
 

詳解

ビットマップイメージ管理クラス

ビットマップイメージを一つ管理します。デバイスコンテキスト との親和が高く、イメージの編集が容易です。
覚え書き
各種 Set() を使い、インスタンスが扱うイメージを指定します。
各種挿入関数( Insert() , InsertOnAlphaBlend(), InsertOnTransparent(), InsertOnSemitransparect() )を使い、 別イメージを画像を挿入、合成出来ます。
Cut() でイメージの任意の箇所を切り出せます。
Draw() などで、指定のデバイスコンテキストに描画が可能です。
GetDC() , ReleaseDC() で、デバイスコンテキストとしてイメージを扱うことが可能です。
MFC が使える環境では、 CBitmapDC クラスも使用できます。
必要ファイル
TnbBitmapImage.h
日付
07/10/03 新規作成
07/10/19 InsertOnSemitransparect() 、透過色指定可能にした。 Tile() 追加。
07/10/22 Attach() , Detach() 追加。自分管理と同じハンドルを渡された時に以上にならないようにした。 GradationFill() 追加。
07/10/27 Draw() に POINT 指定可能にした。
07/10/27 CRawData で管理するデータを24bitから32bitに変更。
07/10/29 CreateMaskBitmap() , CustomizeAlpha() を追加。
07/10/30 CaptureClient() , CaptureWindow() , SetStretchBltMode() を追加。
07/11/06 ChangePixelColor() 追加。
07/11/13 Save() 追加。 Tile() 廃止、 DrawTile() 追加。 Set() に色指定を追加。
07/11/21 コピーコンストラクタのバグ修正(無効になるHDCを使用する可能性があった)。
07/11/23 SetFromClient() に範囲指定可能メソッドを追加。 CustomizeAlpha() を修正。
07/12/04 Work用のDCの持ち方を改善。
08/01/22 SetFromClient() の第3引数の拡張。
08/03/12 GradationFill() に第4引数追加。 Semitransparect 系関数の parsent 意味拡張。
08/07/02 BIT操作処理最適化。CE対応。
09/07/29 CalcAdjustRect() 新規。 Cut() で生成した画像のサイズが不正だった。
09/08/26 DIB を意識して、最適化。
11/10/11 CreateRotateImage() , CreateReverseImage() , enum EDirection 、 新規追加。
12/03/01 const の GetRgbDataPtr() を追加。
12/03/21 GradationFill() のエラーチェック強化。
14/12/09 SetEx() 新規。RGB がいらない巨大な画像を作成する為に追加。
15/05/01 CreateGrayscaleBitmap() 新規。
19/06/14 CreateDilationBitmap() , CreateErosionBitmap() , MedianFilter() 新規。
19/06/30 Paint() 新規。

TnbBitmapImage.h73 行目に定義があります。

列挙型メンバ詳解

◆ EDirection

enum EDirection

方向

列挙値
Vertical 

垂直

Horizontal 

水平

TnbBitmapImage.h890 行目に定義があります。

構築子と解体子

◆ CBitmapImage() [1/3]

CBitmapImage ( void  )

コンストラクタ

TnbBitmapImage.h175 行目に定義があります。

◆ CBitmapImage() [2/3]

代入コンストラクタ

引数
bmpビットマップ。

TnbBitmapImage.h186 行目に定義があります。

◆ CBitmapImage() [3/3]

CBitmapImage ( const CBitmapImage other)

コピーコンストラクタ

覚え書き
本クラスのコピーは、コピー元、コピー先で同じハンドルを共有することになります。 コピー後、編集目的の場合、 Clone()Set() を使ってください。
引数
otherコピー元。

TnbBitmapImage.h198 行目に定義があります。

◆ ~CBitmapImage()

virtual ~CBitmapImage ( void  )
virtual

デストラクタ

TnbBitmapImage.h222 行目に定義があります。

関数詳解

◆ AlphaBlend()

bool AlphaBlend ( HDC  hdc,
int  x,
int  y,
int  parsent = 100,
int  cx = 0,
int  cy = 0 
) const

[描画] 半透明処理付イメージ描画.

覚え書き
本インスタンスで保持しているイメージを、指定のデバイスコンテキストに描画します。
WIN32API AlphaBlend を使用しています。
引数
hdc描画対象のデバイスコンテキスト。
x描画X座標。
y描画Y座標。
parsent描画画像の濃さ(単位;%) 省略なら100% 。 -1 を指定すると、 保持しているイメージのピクセル毎のアルファチャネルを使用します。
cx表示幅。省略するとイメージ情報のままの幅になります。これを使うと、拡大縮小して表示することが可能です。
cy表示高さ。省略するとイメージ情報のままの高さになります。これを使うと、拡大縮小して表示することが可能です。
戻り値
true成功。
false失敗。

TnbBitmapImage.h1555 行目に定義があります。

◆ Attach()

bool Attach ( CBitmapHandle  bmp)

[設定] アタッチ.

指定のハンドルを本クラスで共有します。 Set() に比べ(複製しない分)高速ですが、 同じハンドルを共有するため、一方が変更すると影響を受けてしまいます。

引数
bmpビットマップ。
戻り値
true成功。
false失敗。

TnbBitmapImage.h367 行目に定義があります。

◆ BitBlt()

bool BitBlt ( HDC  hdc,
int  x,
int  y,
DWORD  raster = SRCCOPY 
) const

[表示] イメージ描画.

覚え書き
本インスタンスで保持しているイメージを、指定デバイスコンテキストに描画します。
WIN32API BitBlt を使用しています。
引数
hdc描画対象のデバイスコンテキスト。
x描画X位置(左が0)。
y描画Y位置(上が0)。
rasterオペレーションコード。省略すると、 SRCCOPY になります。
::BitBlt の dwRop のコードを指定します。以下一般的なコードです
コード 説明
BLACKNESS 物理パレットのインデックス 0 に対応する色(既定の物理パレットでは黒)で、コピー先の長方形を塗りつぶします。
DSTINVERT コピー先長方形の色を反転します。
MERGECOPY 論理 AND 演算子を使って、コピー元の色とコピー先の色を組み合わせます。
MERGEPAINT 論理 OR 演算子を使って、コピー元の色を反転した色と、コピー先の色を組み合わせます。
NOTSRCCOPY コピー元の色を反転して、コピー先へコピーします。
NOTSRCERASE 論理 OR 演算子を使って、コピー元の色とコピー先の色を組み合わせ、さらに反転します。
PATCOPY 指定したパターンをコピー先へコピーします。
PATINVERT 論理 XOR 演算子を使って、指定したパターンの色と、コピー先の色を組み合わせます。
PATPAINT 論理 OR 演算子を使って、指定したパターンの色と、コピー元の色を反転した色を組み合わせます。さらに論理 OR 演算子を使って、その結果と、コピー先の色を組み合わせます。
SRCAND 論理 AND 演算子を使って、コピー元の色とコピー先の色を組み合わせます。
SRCCOPY コピー元長方形をコピー先長方形へそのままコピーします。
SRCERASE 論理 AND 演算子を使って、コピー先の色を反転した色と、コピー元の色を組み合わせます。
SRCINVERT 論理 XOR 演算子を使って、コピー元の色とコピー先の色を組み合わせます。
SRCPAINT 論理 OR 演算子を使って、コピー元の色とコピー先の色を組み合わせます。
WHITENESS 物理パレットのインデックス 1 に対応する色(既定の物理パレットでは白)で、コピー先の長方形を塗りつぶします。
戻り値
true成功。
false失敗。

TnbBitmapImage.h1472 行目に定義があります。

◆ CalcAdjustRect()

static void CalcAdjustRect ( RECT &  _rect,
const SIZE &  dstSize,
const SIZE &  srcSize 
)
static

[計算] 表示位置調整.

指定の大きさのエリアに、比率を変えずに画面の中央に隙間無く配置するための範囲を計算します。

引数
[out]_rect配置する範囲が格納されます。
[in]dstSize配置先のサイズ.
[in]srcSize元の情報のサイズ

TnbBitmapImage.h2069 行目に定義があります。

◆ ChangeByDpi()

static CBitmapHandle ChangeByDpi ( CBitmapHandle  bmp)
static

[作成] 画像縮小拡大

覚え書き
DPI にあわせて画像の大きさを調整します。ベース96DPIです。
引数
bmp元ビットマップ
戻り値
変換後のビットマップ

TnbBitmapImage.h2045 行目に定義があります。

◆ ChangePixelColor() [1/2]

bool ChangePixelColor ( COLORREF  r,
COLORREF  g,
COLORREF  b 
)

[処理] カラー変更.

元画像の色から RGBの要素比率で色を変更できます。

覚え書き
元と同じ絵にするなら RGB(255,0,0), RGB(0,255,0), RGB(0,0,255) を指定することになります。
引数
r赤の要素比率。
g緑の要素比率。
b青の要素比率。
戻り値
false失敗。
true成功。

TnbBitmapImage.h1134 行目に定義があります。

◆ ChangePixelColor() [2/2]

int ChangePixelColor ( COLORREF  targetColor,
COLORREF  drawColor 
)

[処理] カラー変更.

覚え書き
本インスタンスで保持しているイメージの指定の色を指定の色に置き換えます。
引数
targetColor変更したい色。
drawColor変更後の色。
戻り値
マイナス失敗。
0以上変更したPixel数。

TnbBitmapImage.h1102 行目に定義があります。

◆ Clone()

CBitmapImage Clone ( void  ) const

[複製] クローン作成

覚え書き
本クラスは、複製が可能です。ただし、同じイメージ情報を共有してしまいます。 本メソッドを使うと、別のイメージ情報になります。
戻り値
複製。

TnbBitmapImage.h352 行目に定義があります。

◆ CreateDilationBitmap()

CBitmapImage CreateDilationBitmap ( void  ) const

[作成] 膨張画像作成.

膨張画像を作成します。GREEN要素だけみるのでグレイスケールか二値の画像を対象とします。

覚え書き
HasRgbData() で true を返すオブジェクトでないと失敗します。
戻り値
ビットマップイメージ。 失敗した場合、Empty状態のものが返ります。

TnbBitmapImage.h1840 行目に定義があります。

◆ CreateErosionBitmap()

CBitmapImage CreateErosionBitmap ( void  ) const

[作成] 収縮画像作成.

収縮画像を作成します。GREEN要素だけみるのでグレイスケールか二値の画像を対象とします。

覚え書き
HasRgbData() で true を返すオブジェクトでないと失敗します。
戻り値
ビットマップイメージ。 失敗した場合、Empty状態のものが返ります。

TnbBitmapImage.h1851 行目に定義があります。

◆ CreateGrayscaleBitmap()

CBitmapImage CreateGrayscaleBitmap ( void  ) const

[作成] グレイスケール画像作成.

グレイスケール画像を作成します。

覚え書き
HasRgbData() で true を返すオブジェクトでないと失敗します。
戻り値
ビットマップイメージ。 失敗した場合、Empty状態のものが返ります。

TnbBitmapImage.h1800 行目に定義があります。

◆ CreateMaskBitmap()

HBITMAP CreateMaskBitmap ( bool  boIsReverse = false,
COLORREF  transColor = CLR_AUTOSELECT 
) const

[作成] マスクパターンビットマップ作成.

引数
boIsReversefalse なら指定色の部分が 0 それ以外は 1 のモノクロームビットマップが作られます。 true なら指定色の部分が 1 それ以外は 0 のモノクロームビットマップが作られます。
transColorマスクする色を指定します。省略すると、保持しているイメージの左下の色を指定色とします。
戻り値
NULLエラー。
NULL以外モノクロームビットマップ

TnbBitmapImage.h1246 行目に定義があります。

◆ CreateRawData()

CRawData _deprecated CreateRawData ( void  ) const

[作成] 生データ作成.

本オブジェクトが保持する生データをもつオブジェクトを作成します。

戻り値
生データ管理クラス。 本関数がエラーの場合、無効状態の CRawData が返ります。
非推奨:
廃止予定のメソッドです。

TnbBitmapImage.h1278 行目に定義があります。

◆ CreateReverseImage()

CBitmapImage CreateReverseImage ( bool  isVertical,
bool  isHorizontal 
) const

[作成] 反転画像作成.

反転画像を作成します。

覚え書き
HasRgbData() で true を返すオブジェクトでないと失敗します。
引数
isVerticaltrue なら上下に反転します。
isHorizontaltrue なら左右に反転します。
戻り値
ビットマップイメージ。 失敗した場合、Empty状態のものが返ります。

TnbBitmapImage.h1762 行目に定義があります。

◆ CreateRgn()

HRGN CreateRgn ( COLORREF  transColor = CLR_AUTOSELECT) const

[作成] リージョン作成.

ビットマップ形状に合わせてリージョンを作成する.

引数
transColor透過色を指定します。 省略すると、本オブジェクトが保持しているBITMAPの左下の色を透過色とします。
CLR_INVALID を指定するとビットマップの大きさの四角のリージョンを作成します。
戻り値
NULLエラー。
NULL以外リージョン。 使用後は ::DeleteObject() で破棄してください。

TnbBitmapImage.h1312 行目に定義があります。

◆ CreateRotateImage()

CBitmapImage CreateRotateImage ( void  ) const

[作成] 回転画像作成.

時計周りに90度傾く画像を作成します。

覚え書き
HasRgbData() で true を返すオブジェクトでないと失敗します。
戻り値
ビットマップイメージ。 失敗した場合、Empty状態のものが返ります。

TnbBitmapImage.h1730 行目に定義があります。

◆ CustomizeAlpha() [1/3]

bool CustomizeAlpha ( BYTE  alpha)

[処理] アルファチャネル操作.

覚え書き
本インスタンスで保持しているイメージのアルファチャネルを操作します。
引数
alpha設定するアルファ値
戻り値
true成功。
false失敗。

TnbBitmapImage.h1013 行目に定義があります。

◆ CustomizeAlpha() [2/3]

bool CustomizeAlpha ( BYTE  alpha,
COLORREF  colorEx,
BYTE  alphaEx 
)

[処理] アルファチャネル操作.

覚え書き
本インスタンスで保持しているイメージのアルファチャネルを操作します。
引数
alpha設定するアルファ値
colorEx別のアルファ値に設定したいカラーを指定します。
alphaExcolorExの色に設定するアルファ値。
戻り値
true成功。
false失敗。

TnbBitmapImage.h1035 行目に定義があります。

◆ CustomizeAlpha() [3/3]

bool CustomizeAlpha ( CBitmapHandle  bmp)

[処理] アルファチャネル操作.

覚え書き
本インスタンスで保持しているイメージのアルファチャネルを操作します。
引数
bmpアルファ値元(REDの要素を使用)
戻り値
true成功。
false失敗。同じ大きさの画像でない時も失敗します。

TnbBitmapImage.h1065 行目に定義があります。

◆ Cut()

CBitmapImage Cut ( const RECT &  rect,
int  cx = 0,
int  cy = 0 
) const

[取得] イメージ取り出し.

覚え書き
本インスタンスで保持しているイメージから、指定の矩形範囲を取り出します。
引数
rect取り出し範囲。
cx取り出し後の幅。省略するとイメージ情報のままの幅になります。これを使うと、拡大縮小して取り出すことが可能です。
cy取り出し後の高さ。省略するとイメージ情報のままの高さになります。これを使うと、拡大縮小して取り出すことが可能です。
戻り値
ビットマップイメージ。 失敗した場合、Empty状態のものが返ります。

TnbBitmapImage.h1172 行目に定義があります。

◆ Detach()

CBitmapHandle Detach ( void  )

[設定] デタッチ.

本インスタンスで使用しているビットマップハンドルを返し、 Empty 状態になります。

覚え書き
Attach 後、本メソッドを使わず、インスタンスを破棄しても問題ありません。
戻り値
本インスタンスが保持していたビットマップハンドル。

TnbBitmapImage.h378 行目に定義があります。

◆ Draw() [1/2]

bool Draw ( HDC  hdc,
const POINT &  po 
) const

[処理] イメージ描画.

指定のデバイスコンテキストの指定の位置に、本インスタンスで持っているイメージを描画します。

引数
hdc描画対象のデバイスコンテキスト。
po描画位置(左上が0,0)。
戻り値
true成功。
false失敗。

TnbBitmapImage.h1400 行目に定義があります。

◆ Draw() [2/2]

bool Draw ( HDC  hdc,
int  x = 0,
int  y = 0 
) const

[処理] イメージ描画.

指定のデバイスコンテキストの指定の位置に、本インスタンスで持っているイメージを描画します。

引数
hdc描画対象のデバイスコンテキスト。
x描画X位置(左が0)。省略すると0。
y描画Y位置(上が0)。省略すると0。
戻り値
true成功。
false失敗。

TnbBitmapImage.h1386 行目に定義があります。

◆ DrawTile()

bool DrawTile ( HDC  hdc,
const RECT &  rect 
) const

[処理] イメージタイル描画.

指定のデバイスコンテキストの指定の範囲に、本インスタンスで持っているイメージを敷き詰めます。

覚え書き
画像は拡大されません。
引数
hdc描画対象のデバイスコンテキスト。
rect描画範囲(左上が0,0)。
戻り値
true成功。
false失敗。

TnbBitmapImage.h1414 行目に定義があります。

◆ Empty()

void Empty ( void  )

[設定] 破棄.

本インスタンスで持っているイメージを破棄します。本インスタンスは Empty状態になります。

TnbBitmapImage.h294 行目に定義があります。

◆ Fill() [1/2]

bool Fill ( COLORREF  color)

[処理] 四角描画.

覚え書き
本インスタンスで保持しているイメージを、指定の色で塗りつぶします。
引数
colorカラー。
戻り値
true成功。
false失敗。

TnbBitmapImage.h883 行目に定義があります。

◆ Fill() [2/2]

bool Fill ( COLORREF  color,
const RECT &  rect 
)

[処理] 四角描画.

覚え書き
本インスタンスで保持しているイメージの上に、指定の色で指定の座標に四角を描きます。
引数
colorカラー。
rect座標。
戻り値
true成功。
false失敗。

TnbBitmapImage.h861 行目に定義があります。

◆ GetBitmapHandle()

CBitmapHandle GetBitmapHandle ( void  )

[取得] ビットマップハンドル取得

覚え書き
本インスタンスで管理しているハンドルを取得できます。 Deleteしてはいけません。
戻り値
ビットマップハンドル。 本インスタンスが Empty状態の場合、 NULL 状態のハンドルが返ります。

TnbBitmapImage.h242 行目に定義があります。

◆ GetBitmapInfo()

bool GetBitmapInfo ( BITMAPINFOHEADER &  _head) const

[取得] BITMAPINFOHEADER 取得.

引数
[out]_headBITMAPINFOHEADER 格納先。
戻り値
true成功。
false失敗。

TnbBitmapImage.h328 行目に定義があります。

◆ GetBitmapSize()

static bool GetBitmapSize ( SIZE &  _size,
HBITMAP  hBitmap 
)
static

[取得] ビットマップサイズ取得.

引数
[out]_sizeサイズ格納。
[in]hBitmapビットマップハンドル。一時的にしか使用しません。
戻り値
true成功。
false失敗。

TnbBitmapImage.h2024 行目に定義があります。

◆ GetDC()

HDC GetDC ( void  )

[取得]デバイスコンテキストハンドル取得.

本インスタンスが保持しているイメージが書かれているデバイスコンテキスト を返します。 このデバイスコンテキスト を描画すると、本インスタンスが保持している イメージに反映されます。

覚え書き
GetDC() して ReleaseDC() するまで、他のメソッドは失敗します。
戻り値
NULLエラー。イメージを保持していません。
NULL以外デバイスコンテキスト。描画後、必ず、 本オブジェクトの ReleaseDC() を実行してください。

TnbBitmapImage.h1208 行目に定義があります。

◆ GetRgbDataPtr() [1/2]

RGBQUAD * GetRgbDataPtr ( INT_PTR  y = -1)

[取得] RGBデータアドレス取得.

RGBデータのアドレスを得ることで、直接絵を編集することが出来ます。

覚え書き
RGBデータを持っていないと失敗します( ToHaveRgbData() を使って、RGBデータを持たせることが出来ます)。
引数
y指定の Y のラインのアドレス。 省略(-1)なら、データ全体(画像の縦 - 1 を指定したのと同じアドレス) 。
戻り値
NULL失敗。。
NULL以外RGBデータアドレス

TnbBitmapImage.h1688 行目に定義があります。

◆ GetRgbDataPtr() [2/2]

const RGBQUAD * GetRgbDataPtr ( INT_PTR  y = -1) const

[取得] RGBデータアドレス取得.

RGBデータのアドレスを得ることで、直接絵を編集することが出来ます。

覚え書き
RGBデータを持っていないと失敗します( ToHaveRgbData() を使って、RGBデータを持たせることが出来ます)。
引数
y指定の Y のラインのアドレス。 省略(-1)なら、データ全体(画像の縦 - 1 を指定したのと同じアドレス) 。
戻り値
NULL失敗。。
NULL以外RGBデータアドレス

TnbBitmapImage.h1710 行目に定義があります。

◆ GetSize()

const SIZE & GetSize ( void  ) const

[取得] イメージサイズ取得.

覚え書き
Empty状態でも最後に扱っていた情報が戻ります。必ず、 IsEmpty() で確認してから取得してください。
戻り値
サイズ。

TnbBitmapImage.h316 行目に定義があります。

◆ GradationFill() [1/2]

bool GradationFill ( COLORREF  color1,
COLORREF  color2,
bool  boIsHorizontal,
const RECT *  pRect = NULL 
)

[処理] グラデーション描画.

覚え書き
本インスタンスで保持しているイメージの上に、指定の色でグラデーションを描きます。
引数
color1左/下カラー。
color2右/上カラー。
boIsHorizontaltrue なら水平(左から右)のグラデーションになります。
pRect範囲を指定します。省略すると全体が対象になります。
戻り値
true成功。
false失敗。

TnbBitmapImage.h976 行目に定義があります。

◆ GradationFill() [2/2]

bool GradationFill ( COLORREF  color1,
COLORREF  color2,
EDirection  direction,
const RECT *  pRect = NULL 
)

[処理] グラデーション描画.

覚え書き
本インスタンスで保持しているイメージの上に、指定の色でグラデーションを描きます。
引数
color1左/下カラー。
color2右/上カラー。
direction方向。 Vertical か Horizontal を指定します。
pRect範囲を指定します。省略すると全体が対象になります。
戻り値
true成功。
false失敗。

TnbBitmapImage.h906 行目に定義があります。

◆ GradientFill()

bool GradientFill ( const PTRIVERTEX  pVertex,
DWORD  dwNumVertex,
const PGRADIENT_RECT  pMesh,
DWORD  dwNumMesh,
bool  boIsHorizontal 
)

[処理] グラデーション描画.

覚え書き
本インスタンスで保持しているイメージの上に、指定の色でグラデーションを描きます。
引数
pVertex三角形の頂点を定義する、各 TRIVERTEX 構造体の配列へのポインタを指定します。
dwNumVertex頂点の数を指定します。
pMeshGRADIENT_RECT 構造体の配列を指定します。
dwNumMeshpMesh パラメータの要素数を指定します。
boIsHorizontaltrue なら水平(左から右)のグラデーションになります。
戻り値
true成功。
false失敗。

TnbBitmapImage.h993 行目に定義があります。

◆ HasRgbData()

bool HasRgbData ( void  ) const

[確認] RGBデータ有無.

戻り値
true有り
falseなし. ToHaveRgbData() を使って、RGBデータを持たせることが出来ます。

TnbBitmapImage.h1660 行目に定義があります。

◆ Insert()

bool Insert ( int  x,
int  y,
const CBitmapImage bmpimg,
DWORD  raster = SRCCOPY,
int  cx = 0,
int  cy = 0 
)

[挿入] イメージ挿入.

覚え書き
本インスタンスで保持しているイメージの上に、指定のビットマップのイメージを追加します。
cx , cy を指定すると、これを使うと、拡大縮小して挿入することが可能です。また、 負の数を指定すると、反転して挿入することが出来ます。ただし、挿入座標を軸に反転しますので、 挿入位置に注意してください。
WIN32API BitBlt、StretchBlt を使用しています。
引数
x挿入X座標。
y挿入Y座標。
bmpimg挿入ビットマップイメージ。
rasterオペレーションコード。省略すると、 SRCCOPY になります。
::BitBlt の dwRop のコードを指定します。以下一般的なコードです
コード 説明
BLACKNESS 物理パレットのインデックス 0 に対応する色(既定の物理パレットでは黒)で、コピー先の長方形を塗りつぶします。
DSTINVERT コピー先長方形の色を反転します。
MERGECOPY 論理 AND 演算子を使って、コピー元の色とコピー先の色を組み合わせます。
MERGEPAINT 論理 OR 演算子を使って、コピー元の色を反転した色と、コピー先の色を組み合わせます。
NOTSRCCOPY コピー元の色を反転して、コピー先へコピーします。
NOTSRCERASE 論理 OR 演算子を使って、コピー元の色とコピー先の色を組み合わせ、さらに反転します。
PATCOPY 指定したパターンをコピー先へコピーします。
PATINVERT 論理 XOR 演算子を使って、指定したパターンの色と、コピー先の色を組み合わせます。
PATPAINT 論理 OR 演算子を使って、指定したパターンの色と、コピー元の色を反転した色を組み合わせます。さらに論理 OR 演算子を使って、その結果と、コピー先の色を組み合わせます。
SRCAND 論理 AND 演算子を使って、コピー元の色とコピー先の色を組み合わせます。
SRCCOPY コピー元長方形をコピー先長方形へそのままコピーします。
SRCERASE 論理 AND 演算子を使って、コピー先の色を反転した色と、コピー元の色を組み合わせます。
SRCINVERT 論理 XOR 演算子を使って、コピー元の色とコピー先の色を組み合わせます。
SRCPAINT 論理 OR 演算子を使って、コピー元の色とコピー先の色を組み合わせます。
WHITENESS 物理パレットのインデックス 1 に対応する色(既定の物理パレットでは白)で、コピー先の長方形を塗りつぶします。
cx挿入幅。省略するとイメージ情報のままの幅になります。これを使うと、拡大縮小して挿入することが可能です。
cy挿入高さ。省略するとイメージ情報のままの高さになります。これを使うと、拡大縮小して挿入することが可能です。
戻り値
true成功。
false失敗。

TnbBitmapImage.h748 行目に定義があります。

◆ InsertEx()

bool InsertEx ( int  x,
int  y,
HBITMAP  hBitmap,
UINT  uExFlag = DSS_NORMAL 
)

[挿入] イメージ挿入.

覚え書き
本インスタンスで保持しているイメージの上に、指定のビットマップのイメージを追加します。
WIN32API DrawState を使用しています。
引数
x挿入X座標。
y挿入Y座標。
hBitmap挿入画像。
uExFlag挿入フラグ。以下の3種、使用できます。
省略か DSS_NORMAL - - - イメージをそのまま描画します。
DSS_DISABLED - - - イメージを浮き上がらせます(エンボス)。
DSS_UNION - - - イメージをディザリングします。
戻り値
true成功。
false失敗。

TnbBitmapImage.h683 行目に定義があります。

◆ InsertOnAlphaBlend()

bool InsertOnAlphaBlend ( int  x,
int  y,
const CBitmapImage bmpimg,
int  parsent = 100,
int  cx = 0,
int  cy = 0 
)

[挿入] 半透過処理付イメージ挿入.

覚え書き
本インスタンスで保持しているイメージの上に、指定のビットマップのイメージを追加します。
WIN32API AlphaBlend を使用しています。
引数
x挿入X座標。
y挿入Y座標。
bmpimg挿入ビットマップイメージ。
parsent挿入画像の濃さ(単位;%) 省略なら100% 。 -1 を指定すると、 保持しているイメージのピクセル毎のアルファチャネルを使用します。
cx挿入幅。省略するとイメージ情報のままの幅になります。これを使うと、拡大縮小して挿入することが可能です。
cy挿入高さ。省略するとイメージ情報のままの高さになります。これを使うと、拡大縮小して挿入することが可能です。
戻り値
true成功。
false失敗。

TnbBitmapImage.h807 行目に定義があります。

◆ InsertOnSemitransparect()

bool InsertOnSemitransparect ( int  x,
int  y,
const CBitmapImage bmpimg,
int  parsent = 100,
COLORREF  color = CLR_AUTOSELECT 
)

[挿入] 半透明イメージ挿入(透過色付).

覚え書き
本インスタンスで保持しているイメージの上に、指定のビットマップのイメージを追加します。
todo:
一ドット毎に計算しているため、処理速度は速くありません。
引数
x挿入X座標。
y挿入Y座標。
bmpimg挿入ビットマップイメージ。
parsent挿入画像の濃さ(単位;%) 省略なら100。 -1 を指定すると、 保持しているイメージのピクセル毎のアルファチャネルを使用します。
color透過させるカラーを指定します。 省略すると、 bmpimg の左下の色を透過色とします。
CLR_INVALID を指定すると透過処理なしで挿入します。
戻り値
true成功。
false失敗。

TnbBitmapImage.h838 行目に定義があります。

◆ InsertOnTransparent()

bool InsertOnTransparent ( int  x,
int  y,
const CBitmapImage bmpimg,
COLORREF  color = CLR_AUTOSELECT,
int  cx = 0,
int  cy = 0 
)

[挿入] 透過処理付イメージ挿入.

覚え書き
本インスタンスで保持しているイメージの上に、指定のビットマップのイメージを追加します。
WIN32API TransparentBlt を使用しています。
引数
x挿入X座標。
y挿入Y座標。
bmpimg挿入ビットマップイメージ。
color透過させるカラーを指定します。 省略すると、 bmpimg の左下の色を透過色とします。
CLR_INVALID を指定すると透過処理なしで挿入します。
cx挿入幅。省略するとイメージ情報のままの幅になります。これを使うと、拡大縮小して挿入することが可能です。
cy挿入高さ。省略するとイメージ情報のままの高さになります。これを使うと、拡大縮小して挿入することが可能です。
戻り値
true成功。
false失敗。

TnbBitmapImage.h778 行目に定義があります。

◆ IsEmpty()

bool IsEmpty ( void  ) const

[確認] Empty状態確認.

戻り値
trueEmpty状態。イメージは持っていません。
falseイメージを持っています。

TnbBitmapImage.h306 行目に定義があります。

◆ Load() [1/2]

static HBITMAP _deprecated Load ( LPCTSTR  lpszFileName,
int  cx = 0,
int  cy = 0,
UINT  fuLoad = LR_CREATEDIBSECTION 
)
static

[読込] BMPファイル読込み.

引数
lpszFileNameファイル名。
cx読み込みXサイズを指定できます。省略すると、ファイルの情報のままになります。
cy読み込みYサイズを指定できます。省略すると、ファイルの情報のままになります。
fuLoad読込みオプションを指定できます。省略可能。
-> http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_loadimage.asp
戻り値
NULL失 *
NULL以外ビットマップハンドル。
非推奨:
CBitmapHandle::Load() を使用してください。

TnbBitmapImage.h1995 行目に定義があります。

◆ Load() [2/2]

static HBITMAP _deprecated Load ( UINT  uBitmapResourceId,
int  cx = 0,
int  cy = 0,
UINT  fuLoad = LR_CREATEDIBSECTION 
)
static

[読込] リソース読込み

覚え書き
インスタンスハンドルは、 GetInstanceHandle(EI_Bitmap) の値が使用されます。
引数
uBitmapResourceIdビットマップリソースID
cx読み込みXサイズを指定できます。省略すると、リソースの情報のままになります。
cy読み込みYサイズを指定できます。省略すると、リソースの情報のままになります。
fuLoad読込みオプションを指定できます。省略可能。
-> http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_loadimage.asp
戻り値
NULL失敗。
NULL以外ビットマップハンドル。
非推奨:
CBitmapHandle::Load() を使用してください。

TnbBitmapImage.h2012 行目に定義があります。

◆ MedianFilter()

CBitmapImage MedianFilter ( void  ) const

[作成] メディアンフィルター画像作成.

メディアンフィルター画像を作成します。

覚え書き
HasRgbData() で true を返すオブジェクトでないと失敗します。
戻り値
ビットマップイメージ。 失敗した場合、Empty状態のものが返ります。

TnbBitmapImage.h1862 行目に定義があります。

◆ operator CBitmapHandle()

operator CBitmapHandle ( void  )

[取得] HBITMAP 取得

覚え書き
本インスタンスで管理しているハンドルを取得できます。 Deleteしてはいけません。
戻り値
HBITMAP。 Empty状態の場合、 NULL 状態のハンドルが返ります。

TnbBitmapImage.h232 行目に定義があります。

◆ operator=()

CBitmapImage & operator= ( const CBitmapImage other)

コピーオペレータ

覚え書き
本クラスのコピーは、コピー元、コピー先で同じハンドルを共有することになります。 コピー後、編集目的の場合、 Clone()Set() を使ってください。
引数
otherコピー元。
戻り値
自分の参照。

TnbBitmapImage.h210 行目に定義があります。

◆ Paint()

DWORD Paint ( int  x,
int  y,
COLORREF  c 
)

[描画] ペイント.

覚え書き
HasRgbData() で true を返すオブジェクトでないと失敗します。
引数
xX座標
yY座標
cカラー
戻り値
ペイントしたPIXEL数

TnbBitmapImage.h1936 行目に定義があります。

◆ ReleaseDC()

bool ReleaseDC ( void  )

[設定] デバイスコンテキストハンドル返却.

GetDC() の後、必ず本メソッドを使用してください。

戻り値
true成功。
false失敗。 GetDC() していません。

TnbBitmapImage.h1228 行目に定義があります。

◆ Save()

DWORD Save ( LPCTSTR  lpszFileName,
WORD  bitsPixel = 0 
)

[作成] BMPファイル作成.

覚え書き
CE では bitsPixel は無視され必ず32になります。
引数
lpszFileNameファイル名。
bitsPixel一ドットのビット数。1,4,8,16,24,32 のいずれかが指定できます。 0なら ビットマップの情報ままになります。
戻り値
ERROR_SUCCESS成功。
上記以外失敗。数値はシステムエラーコードです( SystemErrorToMessageText() で文字列化できます)。

TnbBitmapImage.h1976 行目に定義があります。

◆ SemitransparectBlt()

bool SemitransparectBlt ( HDC  hdc,
int  x,
int  y,
int  parsent = 100,
COLORREF  color = CLR_AUTOSELECT 
) const

[挿入] 半透明,透過イメージ描画.

覚え書き
本インスタンスで保持しているイメージを、指定のデバイスコンテキストに描画します。
注意
一ドット毎に計算しているため、処理速度は速くありません。
引数
hdc描画対象のデバイスコンテキスト。
x描画X座標。
y描画Y座標。
parsent描画画像の濃さ(単位;%) 省略なら100。 -1 を指定すると、 保持しているイメージのピクセル毎のアルファチャネルを使用します。
color透過させるカラーを指定します。 省略すると、本オブジェクトが保持しているビットマップの左下の色を透過色とします。
CLR_INVALID を指定すると透過処理なしで描画します。
戻り値
true成功。
false失敗。

TnbBitmapImage.h1596 行目に定義があります。

◆ Set() [1/4]

bool Set ( CBitmapHandle  bmp)

[設定] イメージ設定.

本インスタンスで保持しているイメージを破棄し、指定のビットマップのイメージを複製し保持します。

覚え書き
元のビットマップを変更しても影響ありません。
引数
bmpビットマップ。
戻り値
true成功。
false失敗。Empty状態になります。

TnbBitmapImage.h441 行目に定義があります。

◆ Set() [2/4]

bool Set ( const CBitmapImage bmpimg,
int  cx = 0,
int  cy = 0 
)

[設定] イメージ設定.

覚え書き
本インスタンスで保持しているイメージを破棄し、指定のビットマップのイメージを保持します。
引数
bmpimgビットマップイメージ。
cxビットマップの幅。省略するとイメージ情報のままの幅になります。
cyビットマップの高さ。省略するとイメージ情報のままの高さになります。
戻り値
true成功。
false失敗。Empty状態になります。

TnbBitmapImage.h456 行目に定義があります。

◆ Set() [3/4]

bool _deprecated Set ( const CRawData rawData)

[設定] 生データからイメージ設定.

引数
rawData生データ管理クラス。
戻り値
true成功。
false失敗。Empty状態になります。
非推奨:
廃止予定のメソッドです。

TnbBitmapImage.h484 行目に定義があります。

◆ Set() [4/4]

bool Set ( int  cx,
int  cy,
COLORREF  color = CLR_INVALID 
)

[設定] イメージ設定.

覚え書き
本インスタンスで保持しているイメージを破棄し、指定のサイズのビットマップのイメージを保持します。
引数
cxビットマップの幅。
cyビットマップの高さ。
color塗りつぶし色。省略すると、塗りつぶしません。
戻り値
true成功。
false失敗。Empty状態になります。

TnbBitmapImage.h394 行目に定義があります。

◆ SetEx()

bool SetEx ( HDC  hDC,
int  cx,
int  cy,
COLORREF  color = CLR_INVALID 
)

[設定] 拡張イメージ設定.

覚え書き
本インスタンスで保持しているイメージを破棄し、指定のサイズのビットマップのイメージを保持します。 その際指定のウィンドウのデバイスコンテキストの色形式でビットマップを作成します。
引数
hDCデバイスコンテキスト
cxビットマップの幅。
cyビットマップの高さ。
color塗りつぶし色。省略すると、塗りつぶしません。
戻り値
true成功。
false失敗。Empty状態になります。

TnbBitmapImage.h422 行目に定義があります。

◆ SetFromClient() [1/2]

bool SetFromClient ( HWND  hWnd,
COLORREF  backColor = CLR_INVALID 
)

[設定] クライアントからイメージ設定.

指定のウィンドウのクライアント領域のイメージを取り込みます。

覚え書き
WM_PRINTCLIENT に対応している必要があります。
引数
hWndウィンドウハンドル
backColor背景色。クリッピング範囲外の色を指定します。 CLR_AUTOSELECT なら、 WM_ERASEBKGND を使い、先に背景を描画します。 省略すると、背景を描画処理しません。
戻り値
true成功。
false失敗。Empty状態になります。

TnbBitmapImage.h613 行目に定義があります。

◆ SetFromClient() [2/2]

bool SetFromClient ( HWND  hWnd,
const RECT &  rect,
COLORREF  backColor = CLR_INVALID 
)

[設定] クライアントからイメージ設定.

指定のウィンドウのクライアント領域の指定範囲のイメージを取り込みます。

覚え書き
WM_PRINTCLIENT に対応している必要があります。
CE ではイメージは取り込めませんが、成功でリターンします。
引数
hWndウィンドウハンドル
rect範囲。
backColor背景色。クリッピング範囲外の色を指定します。 CLR_AUTOSELECT なら、 WM_ERASEBKGND を使い、先に背景を描画します。 省略すると、背景を描画処理しません。
戻り値
true成功。
false失敗。Empty状態になります。

TnbBitmapImage.h576 行目に定義があります。

◆ SetFromDC()

bool SetFromDC ( HDC  hdc,
const RECT &  rect,
int  cx = 0,
int  cy = 0 
)

[設定] DCからイメージ設定.

覚え書き
本インスタンスで保持しているイメージを破棄し、指定のデバイスコンテキストのイメージを保持します。
引数
hdc取り込み元デバイスコンテキスト。
recthdc のどの位置を取り込むか指定します。
cxビットマップの幅。省略するとイメージ情報のままの幅になります。
cyビットマップの高さ。省略するとイメージ情報のままの高さになります。
戻り値
true成功。
false失敗。Empty状態になります。

TnbBitmapImage.h509 行目に定義があります。

◆ SetFromIcon()

bool SetFromIcon ( HICON  hIcon,
COLORREF  backColor 
)

[作成] ICONからイメージ設定.

引数
hIconアイコン。
backColor透過色のエリアの色指定。
戻り値
true成功。
false失敗。Empty状態になります。

TnbBitmapImage.h541 行目に定義があります。

◆ SetFromWindow()

bool SetFromWindow ( HWND  hWnd,
COLORREF  backColor = CLR_INVALID,
LPARAM  mode = PRF_CLIENT | PRF_ERASEBKGND | PRF_NONCLIENT | PRF_OWNED 
)

[設定] ウィンドウからイメージ設定.

指定のウィンドウ領域のイメージを取り込みます。

覚え書き
WM_PRINT に対応している必要があります。
引数
hWndウィンドウハンドル
backColor背景色。クリッピング範囲外の色を指定します。
mode取り込みモード。以下の値の組み合わせを指定します。
マスク 説明
PRF_CHECKVISIBLE 見えている状態のときのみ描画
PRF_CHILDREN 見えている子ウィンドウのみ描画
PRF_CLIENT クライアント領域を描画
PRF_ERASEBKGND 描画前に背景を再描画
PRF_NONCLIENT 非クライアント領域を描画
PRF_OWNED 所有する全てのウィンドウ
戻り値
true成功。
false失敗。Empty状態になります。

TnbBitmapImage.h651 行目に定義があります。

◆ SetStretchBltMode()

void SetStretchBltMode ( int  nStretchMode)

[設定] ビットマップ伸縮モード設定.

覚え書き
API ::StretchBlt 関数のビットマップ伸縮モードを設定します。
引数
nStretchMode伸縮モード。以下の値から選択可能です。
説明
STRETCH_ANDSCANS 論理 AND 演算子を使って、残す点の色と取り除く点の色を組み合わせます。 ビットマップがモノクロームのビットマップである場合、白のピクセルが消され、 黒のピクセルが残ります。
STRETCH_DELETESCANS ピクセルを削除します。取り除く点の情報を何らかの形で維持せようとはせず、 単純にそれらの点を削除します。
STRETCH_HALFTONE コピー元長方形内のピクセルをコピー先長方形内のピクセルブロックに関連付けます。 コピー先ブロックの平均的な色は、コピー元のピクセルの色に近い色になります。 Windows 95/98 では、この値はサポートされていません。
STRETCH_ORSCANS 論理 OR 演算子を使って、残す点の色と取り除く点の色を組み合わせます。 ビットマップがモノクロームのビットマップである場合、黒のピクセルが消され、 白のピクセルが残ります。

TnbBitmapImage.h280 行目に定義があります。

◆ SetWorkWnd()

void SetWorkWnd ( HWND  h)

[設定] ワークデバイスコンテキスト設定.

覚え書き
設定しない場合、デスクトップ(NULL)にになっています。
引数
hワークウィンドウハンドル。

TnbBitmapImage.h252 行目に定義があります。

◆ StretchBlt()

bool StretchBlt ( HDC  hdc,
int  x,
int  y,
DWORD  raster = SRCCOPY,
int  cx = 0,
int  cy = 0 
) const

[表示] イメージ描画.

覚え書き
本インスタンスで保持しているイメージを、指定デバイスコンテキストに描画します。
cx , cy を指定すると、これを使うと、拡大縮小して描画することが可能です。また、 負の数を指定すると、反転して挿入することが出来ます。ただし、挿入座標を軸に反転しますので、 挿入位置に注意してください。
WIN32API StretchBlt を使用しています。
引数
hdc描画対象のデバイスコンテキスト。
x描画X位置(左が0)。
y描画Y位置(上が0)。
rasterオペレーションコード。省略すると、 SRCCOPY になります。 コードは、 BitBlt() のオペレーションコードを参照してください。
cx描画幅。省略するとイメージ情報のままの幅になります。これを使うと、拡大縮小して表示することが可能です。
cy描画高さ。省略するとイメージ情報のままの高さになります。これを使うと、拡大縮小して表示することが可能です。
戻り値
true成功。
false失敗。

TnbBitmapImage.h1499 行目に定義があります。

◆ ToHaveRgbData()

bool ToHaveRgbData ( void  )

[設定] RGBデータ準備.

覚え書き
RGBデータを持たせることが出来ます。 GetRgbDataPtr() で得たアドレスで、直接、絵を編集できます。
戻り値
true成功
false失敗

TnbBitmapImage.h1671 行目に定義があります。

◆ TransparentBit()

bool TransparentBit ( HDC  hdc,
int  x,
int  y,
COLORREF  color = CLR_AUTOSELECT,
int  cx = 0,
int  cy = 0 
) const

[表示] 透過処理付イメージ描画.

覚え書き
本インスタンスで保持しているイメージを、指定のデバイスコンテキストにイメージを表示します。
WIN32API TransparentBlt を使用しています。
引数
hdc描画対象のデバイスコンテキスト。
x描画X座標。
y描画Y座標。
color透過させるカラーを指定します。 省略すると、本オブジェクトが保持しているビットマップの左下の色を透過色とします。
CLR_INVALID を指定すると透過処理なしで描画します。
cx表示幅。省略するとイメージ情報のままの幅になります。これを使うと、拡大縮小して表示することが可能です。
cy表示高さ。省略するとイメージ情報のままの高さになります。これを使うと、拡大縮小して表示することが可能です。
戻り値
true成功。
false失敗。

TnbBitmapImage.h1525 行目に定義があります。