WIL説明書(C++)  3.1.0
全メンバ一覧 | 公開型 | 公開メンバ関数 | 静的公開メンバ関数 | 公開変数類 | 限定公開メンバ関数 | 限定公開変数類
FVCL::GDI::CFvGdiImage クラス

GDI画像オブジェクト [詳解]

詳解

GDI画像オブジェクト

namespace FVCL::GDI

DIBイメージを格納するデータ構造クラスです。
FVCL::Data::CFvImage クラスをオーバレイ描画する為に使用します。

必要条件:
ヘッダー: FVCLbasic.h
解説:
描画座標を左上とする画像をオーバレイ描画します。(下図の青い部分)
透明度を設定する事で、画像全体の透過率を調整できます。(下図左の緑の部分)
画像が 32bpp の場合は、画素毎の透過率を調整する事もできます。(下図右の緑の部分)
但し、画素毎の透過率は 0x00 と 0xFF のみ使用できます。それ以外を指定すると描画色が不定値になります。
不透明の画素を半透明にするには、全体の透明度(SetAlpha)で調整してください。
CFvGdiImage_alpha.png
この他、 ラスターオペレーションモードNone 以外に設定すると、 コピー元、コピー先の各色データを組み合わせて描画することもできます。 前述の透過率の調整は、 ラスターオペレーションモードNone の時のみ有効です。

画像データのコピー:
本ライブラリの 画像オブジェクト(CFvImage) から この表示用の画像オブジェクトへ画像データをコピーする際に変換処理を行っています。 変換処理の内容については CheckCopyable メソッドの説明をご参照ください。 コピー処理は、このクラスの代入オペレータか Copy メソッドを使用してください。
逆にこのオブジェクトから 画像オブジェクト(CFvImage) に変換する際は GetDataObject メソッドを使用してください。
データの複製を行わずにアタッチをする場合は AttachGetAttachedImage を使用してください。 アタッチ可能な条件については、 CheckValidity メソッドの説明をご参照ください。

リージョンのコピー:
本ライブラリの リージョン(CFvRegion) から この表示用の画像オブジェクトに変換する場合は CopyFrom メソッドを使用してください。

IplImage との相互変換
Intel IPL の IplImage との相互変換を行う場合は、 FVCL::Ipl ネームスペースの IplImageConverter クラスを使用してください。

図形の回転:
親クラス(CFvGdiFigure)が持つ回転角を指定すると、画像を回転して描画できます。 回転中心は、回転の機軸に指定された画素の左上隅になります。 回転角と回転の機軸については CFvGdiFigure::SetAngle 及び CFvGdiFigure::SetAxis をご参照ください。
CFvGdiImage_rotate.png

図形の選択:
図形が選択された事を表す選択マークを描画できます。 この図形が選択中の時は、自身の外接矩形上に選択マークを表示します。 この処理は描画関数(Play)で自動的に行われます。 選択の有無は CFvGdiFigure::SetSelect で切り替えてください。 描画属性は、 SetFocusMarkParam で切り替えてください。 描画属性の既定値は、 SetDefaultFocusMarkParam で設定できます。 外接矩形の取得については、 CFvGdiImage::GetClipRect をご参照ください。 選択マークの表示については、 CFvGdiFigure::DrawFocusMark をご参照ください。
CFvGdiFigure_DrawFocusMark.png

初期値:
メンバ変数は、下記のように初期化されます。
メンバ変数 初期値 意味 メソッド
m_position 0,0 描画座標(画像の左上) SetPosition
GetPosition
m_RasterOperation None ラスタオペレーションコード SetRasterOperation
GetRasterOperation
m_Alpha 0xFF 画像全体の透明度 (0xFF:不透明) SetAlpha
GetAlpha
m_AlphaFormat 0 画素毎の透明度の指定 (0:無効) SetAlphaFormat
GetAlphaFormat
m_HalftoneMode false ハーフトーンモード SetHalftoneMode
GetHalftoneMode
m_StretchHorzSize 0 伸縮後の幅(pixel) SetStretchHorzSize
GetStretchHorzSize
m_StretchVertSize 0 伸縮後の高さ(pixel) SetStretchVertSize
GetStretchVertSize
m_Handle NULL ビットマップハンドル(未確保) GetHandle
m_ImageAdrs NULL 画像領域の先頭アドレス(未確保) GetImageAdrs
m_HorzSize 0 水平画素サイズ(pixel) GetHorzSize
m_VertSize 0 垂直画素サイズ(pixel) GetVertSize
m_Bpp 0 1画素のサイズ(bit) GetBpp
m_HorzByte 0 画像領域の水平方向サイズ(byte) GetHorzByte
m_IsAttach false 外部メモリへのアタッチ(否) IsAttach
参照
CFvGdiFigure::SetAngle
CFvGdiFigure::SetAxis
CFvGdiFigure::SetSelect
CFvGdiFigure::DrawFocusMark
CFvGdiImage::GetClipRect
CFvGdiImage::CheckCopyable
CFvGdiImage::Copy( const FVCL::Data::CFvImage& src, UINT option )
CFvGdiImage::operator = ( const FVCL::Data::CFvImage& src )
+ FVCL::GDI::CFvGdiImage の継承関係図

公開型

enum  { DataID = FVCL::Data::CFvImage::DataID }
 

公開メンバ関数

 CFvGdiImage ()
 コンストラクタ [詳解]
 
 CFvGdiImage (UINT horz, UINT vert, UINT bpp)
 コンストラクタ [詳解]
 
 CFvGdiImage (const CFvGdiImage &src)
 コピーコンストラクタ [詳解]
 
 CFvGdiImage (const FVCL::Data::CFvImage &src)
 コンストラクタ (画像オブジェクトの複製) [詳解]
 
 CFvGdiImage (const FVCL::Data::CFvRegion &src, FVCL::tagRGB32 density)
 コンストラクタ (リージョンの複製) [詳解]
 
 CFvGdiImage (LPCTSTR szFileName)
 コンストラクタ (ファイル読み込み) [詳解]
 
virtual ~CFvGdiImage ()
 デストラクタ [詳解]
 
virtual INT GetDataID () const
 データIDの取得 [詳解]
 
virtual INT Play (HDC dc, DOUBLE magnification) const
 描画処理の実行 [詳解]
 
virtual bool GetDataObject (CFvDataObject *object) const
 データオブジェクトへの変換 [詳解]
 
virtual CFvGdiFigureClone () const
 クローンの生成 [詳解]
 
virtual FVCL::Data::CFvRectangle GetClipRect () const
 外接矩形の取得 [詳解]
 
virtual INT CheckFocusMarkPosition (const FVCL::Data::CFvPoint &mouse, DOUBLE margin=2.0) const
 マウス位置の確認 [詳解]
 
virtual bool Load (LPCTSTR szFileName)
 ファイル読み込み [詳解]
 
virtual bool Save (LPCTSTR szFileName) const
 ファイル保存 [詳解]
 
bool Attach (const FVCL::Data::CFvImage &image)
 画像オブジェクトへのアタッチ [詳解]
 
bool Detach ()
 アタッチの解除 [詳解]
 
bool IsAttach () const
 アタッチ状態の取得 [詳解]
 
bool IsValid () const
 画像の正常性の確認 [詳解]
 
bool GetAttachedImage (FVCL::Data::CFvImage *image) const
 アタッチされた画像オブジェクトの取得 [詳解]
 
virtual void Free ()
 領域の解放 [詳解]
 
virtual bool SetSize (UINT horz, UINT vert, UINT bpp)
 領域の確保 [詳解]
 
bool GetSize (UINT *horz, UINT *vert, UINT *bpp) const
 画像サイズの取得 [詳解]
 
SIZE GetSize () const
 画像サイズの取得 [詳解]
 
bool SetStretchHorzSize (UINT horz)
 伸縮後の幅の設定 [詳解]
 
UINT GetStretchHorzSize () const
 伸縮後の幅の取得 [詳解]
 
bool SetStretchVertSize (UINT vert)
 伸縮後の高さの設定 [詳解]
 
UINT GetStretchVertSize () const
 伸縮後の高さの取得 [詳解]
 
HDC GetHdc () const
 デバイスコンテキストの取得 [詳解]
 
void ReleaseHdc () const
 デバイスコンテキストの開放 [詳解]
 
void * GetHandle () const
 ビットマップハンドルの取得 [詳解]
 
void * GetImageAdrs (UINT x=0, UINT y=0) const
 画像領域のアドレスの取得 [詳解]
 
bool SetPixelI32 (UINT x, UINT y, INT value)
 画素値の設定 (整数) [詳解]
 
INT GetPixelI32 (UINT x, UINT y) const
 画素値の取得 (整数) [詳解]
 
bool SetPixelI64 (UINT x, UINT y, INT64 value)
 画素値の設定 (整数) [詳解]
 
INT64 GetPixelI64 (UINT x, UINT y) const
 画素値の取得 (整数) [詳解]
 
bool SetPixelRGB (UINT x, UINT y, FVCL::tagRGB32 value)
 画素値の設定 (カラー) [詳解]
 
FVCL::tagRGB32 GetPixelRGB (UINT x, UINT y) const
 画素値の取得 (カラー) [詳解]
 
bool SetPixelAlpha (UINT x, UINT y, UCHAR value)
 画素毎の透明度(アルファ値)の設定 [詳解]
 
UCHAR GetPixelAlpha (UINT x, UINT y) const
 画素毎の透明度(アルファ値)の取得 [詳解]
 
void ClearAlpha ()
 画素毎の透明度(アルファ値)の一括更新 [詳解]
 
void ClearAlpha (UCHAR red, UCHAR green, UCHAR blue, UCHAR alpha, bool condition)
 画素毎の透明度(アルファ値)の一括更新 [詳解]
 
void ClearAlpha (FVCL::tagRGB32 rgb, UCHAR alpha, bool condition)
 画素毎の透明度(アルファ値)の一括更新 [詳解]
 
void ClearAlpha (FVCL::tagRGB24 rgb, UCHAR alpha, bool condition)
 画素毎の透明度(アルファ値)の一括更新 [詳解]
 
void Clear (DOUBLE value)
 クリア [詳解]
 
void Clear (FVCL::tagRGB32 value)
 クリア [詳解]
 
void Clear (FVCL::tagRGB24 value)
 クリア [詳解]
 
UINT GetHorzSize () const
 画像の幅の取得 [詳解]
 
UINT GetVertSize () const
 画像の高さの取得 [詳解]
 
UINT GetBpp () const
 画像のピクセルサイズの取得 [詳解]
 
UINT GetHorzByte () const
 画像領域の幅の取得 [詳解]
 
UINT GetMemSize () const
 画像領域のサイズの取得 [詳解]
 
virtual bool SetPosition (const FVCL::Data::CFvPoint &position)
 描画座標の設定 [詳解]
 
virtual const FVCL::Data::CFvPointGetPosition () const
 描画座標の取得 [詳解]
 
bool SetRasterOperation (UINT rasterope)
 ラスターオペレーションコードの設定 [詳解]
 
UINT GetRasterOperation () const
 ラスターオペレーションコードの取得 [詳解]
 
bool SetAlpha (UCHAR alpha)
 透明度の設定 [詳解]
 
UCHAR GetAlpha () const
 透明度の取得 [詳解]
 
bool SetAlphaFormat (UCHAR alpha_format)
 アルファブレンド方法の設定 [詳解]
 
UCHAR GetAlphaFormat () const
 アルファブレンド方法の取得 [詳解]
 
bool SetHalftoneMode (bool halftone)
 ハーフトーンモードの設定 [詳解]
 
bool GetHalftoneMode () const
 ハーフトーンモードの取得 [詳解]
 
bool SetScaling (bool scaling)
 伸縮属性の設定 [詳解]
 
bool GetScaling () const
 伸縮属性の取得 [詳解]
 
bool CopyFrom (const FVCL::Data::CFvRegion &src, FVCL::tagRGB32 density)
 リージョンの複製 [詳解]
 
bool Copy (const FVCL::Data::CFvImage &src, UINT option=0)
 画像の複製 [詳解]
 
virtual CFvGdiImageoperator= (const FVCL::Data::CFvImage &src)
 代入オペレータ [詳解]
 
virtual CFvGdiImageoperator= (const CFvGdiImage &src)
 代入オペレータ [詳解]
 
virtual bool operator== (const CFvGdiFigure &src) const
 比較オペレータ(==) [詳解]
 
virtual bool operator!= (const CFvGdiFigure &src) const
 比較オペレータ(!=) [詳解]
 
- 基底クラス FVCL::GDI::CFvGdiFigure に属する継承公開メンバ関数
 CFvGdiFigure ()
 コンストラクタ [詳解]
 
virtual ~CFvGdiFigure ()
 デストラクタ [詳解]
 
virtual CFvGdiFigureoperator= (const CFvGdiFigure &ope)
 代入オペレータ (=) [詳解]
 
bool SetAxis (const FVCL::Data::CFvPoint &position)
 回転の機軸座標の設定 [詳解]
 
const FVCL::Data::CFvPointGetAxis () const
 回転の機軸座標の取得 [詳解]
 
bool SetAngle (DOUBLE degree)
 傾きの設定 [詳解]
 
DOUBLE GetAngle () const
 傾きの取得 [詳解]
 
bool SetEnable (bool enable)
 可視属性の設定 [詳解]
 
bool GetEnable () const
 可視属性の取得 [詳解]
 
bool SetSelect (bool select)
 選択状態の設定 [詳解]
 
bool GetSelect () const
 選択状態の取得 [詳解]
 
bool SetPen (const CFvGdiPen &pen)
 ペンの設定 [詳解]
 
const CFvGdiPenGetPen () const
 ペンの取得 [詳解]
 
CFvGdiPenGetPen ()
 ペンの取得 [詳解]
 
bool SetPenEnable (bool enable)
 ペンの有効無効の切り替え [詳解]
 
bool GetPenEnable () const
 ペンの有効無効の取得 [詳解]
 
bool SetBrush (const CFvGdiBrush &brush)
 ブラシの設定 [詳解]
 
const CFvGdiBrushGetBrush () const
 ブラシの取得 [詳解]
 
CFvGdiBrushGetBrush ()
 ブラシの取得 [詳解]
 
bool SetBrushEnable (bool enable)
 ブラシの有効無効の切り替え [詳解]
 
bool GetBrushEnable () const
 ブラシの有効無効の取得 [詳解]
 
bool SetBkMode (INT mode)
 背景モードの設定 [詳解]
 
INT GetBkMode () const
 背景モードの取得 [詳解]
 
bool SetBkColor (COLORREF color)
 背景色の設定 [詳解]
 
COLORREF GetBkColor () const
 背景色の取得 [詳解]
 
bool SetFocusMarkParam (const CFvFocusMarkParam &param)
 選択マークの描画属性の設定 [詳解]
 
const CFvFocusMarkParamGetFocusMarkParam () const
 選択マークの描画属性の取得 [詳解]
 
CFvFocusMarkParamGetFocusMarkParam ()
 選択マークの描画属性の取得 [詳解]
 
bool SetAxisVisible (bool value)
 回転の機軸の可視属性の設定 [詳解]
 
bool GetAxisVisible () const
 回転の機軸の可視属性の取得 [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承公開メンバ関数
 CFvObject ()
 標準のコンストラクタ [詳解]
 
virtual ~CFvObject ()
 デストラクタ [詳解]
 
INT SetErrorCode (INT err)
 エラーコードの設定 [詳解]
 
INT SetErrorCode (INT err) const
 エラーコードの設定 [詳解]
 
INT GetErrorCode () const
 エラーコードの取得 [詳解]
 
bool SetAllocateOption (INT value)
 画像領域確保時のオプションの設定 [詳解]
 
INT GetAllocateOption () const
 画像領域確保時のオプションの取得 [詳解]
 
void * operator new (size_t uiSize)
 new オペレータ [詳解]
 
void * operator new[] (size_t uiSize)
 new[] オペレータ [詳解]
 
void operator delete (void *pvObject)
 delete オペレータ [詳解]
 
void operator delete[] (void *pvObject)
 delete[] オペレータ [詳解]
 
void * operator new (size_t uiSize, LPCSTR szFileName, INT iLine)
 new オペレータ [詳解]
 
void * operator new[] (size_t uiSize, LPCSTR szFileName, INT iLine)
 new[] オペレータ [詳解]
 
void operator delete (void *pvObject, LPCSTR szFileName, INT iLine)
 delete オペレータ [詳解]
 
void operator delete[] (void *pvObject, LPCSTR szFileName, INT iLine)
 delete[] オペレータ [詳解]
 
virtual CFvObjectoperator= (const CFvObject &src)
 代入オペレータ [詳解]
 
virtual bool operator== (const CFvObject &src) const
 比較オペレータ (==) [詳解]
 
virtual bool operator!= (const CFvObject &src) const
 比較オペレータ (!=) [詳解]
 

静的公開メンバ関数

static bool CheckValidity (const FVCL::Data::CFvImage &image)
 画像の有効性の確認 [詳解]
 
static bool CheckCopyable (const FVCL::Data::CFvImage &image)
 画像の有効性の確認 [詳解]
 
static UINT CalcWidthByte (UINT horz, UINT bpp)
 画像領域の幅の算出 [詳解]
 
static UINT CalcAllocBpp (UINT bpp)
 画像1画素が必要とするビットサイズの算出 [詳解]
 
static UINT CalcValidBpp (UINT type, UINT channel)
 複製先領域に必要なビットサイズの算出 [詳解]
 
- 基底クラス FVCL::GDI::CFvGdiFigure に属する継承静的公開メンバ関数
static bool SetDefaultPen (const CFvGdiPen &pen)
 既定のペンの設定 [詳解]
 
static CFvGdiPenGetDefaultPen ()
 既定のペンの取得 [詳解]
 
static bool SetDefaultBrush (const CFvGdiBrush &brush)
 既定のブラシの設定 [詳解]
 
static CFvGdiBrushGetDefaultBrush ()
 既定のブラシの取得 [詳解]
 
static bool SetDefaultFocusMarkParam (const CFvFocusMarkParam &param)
 既定の選択マークの描画属性の設定 [詳解]
 
static CFvFocusMarkParamGetDefaultFocusMarkParam ()
 既定の選択マークの描画属性の取得 [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承静的公開メンバ関数
static bool SetDefaultAllocateOption (INT value)
 既定の画像領域確保時のオプションの設定 [詳解]
 
static INT GetDefaultAllocateOption ()
 既定の画像領域確保時のオプションの取得 [詳解]
 

公開変数類

FVCL::Data::CFvPoint m_position
 基準位置 [詳解]
 

限定公開メンバ関数

bool _Allocate (UINT horz, UINT vert, UINT bpp)
 画像領域の確保 [詳解]
 
void _Free ()
 画像領域の開放 [詳解]
 
bool _CreateDIB (UINT horz, UINT vert, UINT bpp, void **handle, void **image)
 画像領域の確保 [詳解]
 
bool _Copy (const FVCL::Data::CFvImage &src, const FVCL::Data::CFvRectangle *area, UINT option=0)
 画像の複製 [詳解]
 
bool _CopyFromBIN (const void *adrs, const RECT &region, UINT depth, UINT wbytes)
 画像の複製 [詳解]
 
bool _CopyFromUC8 (const void *adrs, const RECT &region, UINT depth, UINT wbytes)
 画像の複製 [詳解]
 
bool _CopyFromUC8x3 (const void **adrs, const RECT &region, UINT depth, UINT wbytes)
 画像の複製 [詳解]
 
bool _CopyFromUS16 (const void *adrs, const RECT &region, UINT depth, UINT wbytes)
 画像の複製 [詳解]
 
bool _CopyFromUS16x3 (const void **adrs, const RECT &region, UINT depth, UINT wbytes)
 画像の複製 [詳解]
 
bool _CopyFromUI32 (const void *adrs, const RECT &region, UINT depth, UINT wbytes)
 画像の複製 [詳解]
 
bool _CopyFromUI32x3 (const void **adrs, const RECT &region, UINT depth, UINT wbytes)
 画像の複製 [詳解]
 
bool _CopyFromRGB24 (const void *adrs, const RECT &region, UINT depth, UINT wbytes)
 画像の複製 [詳解]
 
bool _CopyFromRGB32 (const void *adrs, const RECT &region, UINT depth, UINT wbytes)
 画像の複製 [詳解]
 
bool _CopyFromARGB (const void *adrs, const RECT &region, UINT wbytes)
 画像の複製 [詳解]
 
- 基底クラス FVCL::GDI::CFvGdiFigure に属する継承限定公開メンバ関数
virtual bool DrawFocusMark (HDC dc, RECT clip, POINT axis) const
 選択マーク描画処理 [詳解]
 
INT CheckClipRectPosition (const FVCL::Data::CFvRectangle &clip, const FVCL::Data::CFvPoint &mouse, DOUBLE margin) const
 マウス位置の確認 [詳解]
 
bool Rotate (DOUBLE x, DOUBLE y, DOUBLE axis_x, DOUBLE axis_y, DOUBLE angle, DOUBLE *tx, DOUBLE *ty) const
 座標の回転 [詳解]
 
bool WorldTransformRotate (HDC dc, DOUBLE axis_x, DOUBLE axis_y, DOUBLE angle) const
 座標の回転設定 [詳解]
 
bool WorldTransformScale (HDC dc, DOUBLE origin_x, DOUBLE origin_y, DOUBLE magnification) const
 座標の回転設定 [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承限定公開メンバ関数
INT fnCPUCheck ()
 CPU情報の取得 [詳解]
 

限定公開変数類

UINT m_RasterOperation
 ラスターオペレーションコード [詳解]
 
UCHAR m_Alpha
 アルファブレンド処理の透明度 [詳解]
 
UCHAR m_AlphaFormat
 アルファブレンド処理のフォーマット [詳解]
 
bool m_HalftoneMode
 ハーフトーンモード [詳解]
 
void * m_Handle
 ビットマップハンドル [詳解]
 
void * m_ImageAdrs
 画像領域の先頭アドレス [詳解]
 
UINT m_HorzSize
 画像の幅(pixel) [詳解]
 
UINT m_VertSize
 画像の高さ(pixel) [詳解]
 
UINT m_Bpp
 画像1画素辺りのビット数 [詳解]
 
UINT m_HorzByte
 画像の水平サイズ(byte) [詳解]
 
bool m_IsAttach
 アタッチの有無 [詳解]
 
UINT m_StretchHorzSize
 伸縮後の幅(pixel) [詳解]
 
UINT m_StretchVertSize
 伸縮後の高さ(pixel) [詳解]
 
bool m_Scaling
 伸縮属性 [詳解]
 
HDC m_hdc
 関連付けられたデバイスコンテキスト [詳解]
 
- 基底クラス FVCL::GDI::CFvGdiFigure に属する継承限定公開変数類
FVCL::Data::CFvPoint m_Axis
 回転の機軸 [詳解]
 
DOUBLE m_Angle
 傾き [詳解]
 
bool m_Enable
 可視属性 [詳解]
 
bool m_Select
 選択属性 [詳解]
 
CFvGdiPen m_Pen
 ペン [詳解]
 
bool m_PenEnable
 ペンの有効/無効 [詳解]
 
CFvGdiBrush m_Brush
 ブラシ [詳解]
 
bool m_BrushEnable
 ブラシの有効/無効 [詳解]
 
INT m_BkMode
 背景モード [詳解]
 
COLORREF m_BkColor
 背景色 [詳解]
 
CFvFocusMarkParam m_FocusMarkParam
 選択マーク描画属性 [詳解]
 
bool m_AxisVisible
 機軸の可視属性 [詳解]
 
- 基底クラス FVCL::CFvObject に属する継承限定公開変数類
INT m_ErrorCode
 エラーコード [詳解]
 
INT m_AllocateOption
 画像領域確保時のオプション [詳解]
 

列挙型メンバ詳解

anonymous enum
列挙値
DataID 

GDI画像オブジェクトのデータID.

この定数は、表示デバイス互換画像を管理するクラスのIDを示します。
当クラスの GetDataID メソッドがこの値を返します。

参照
FVCL::GDI::CFvGdiImage

構築子と解体子

FVCL::GDI::CFvGdiImage::CFvGdiImage ( )

コンストラクタ

標準のコンストラクタです。

FVCL::GDI::CFvGdiImage::CFvGdiImage ( UINT  horz,
UINT  vert,
UINT  bpp 
)

コンストラクタ

画像の領域のサイズを指定してオブジェクトを構築します。

引数
[in]horz画像の幅 (pixel) [1~]
[in]vert画像の高さ (pixel) [1~]
[in]bppピクセルサイズ (bit) [1,8,24,32]
戻り値
true正常
false異常
例外
FVCL::CFveBadParamException引数が無効です。
FVCL::CFveBadAllocExceptionメモリの確保に失敗しました。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が無効です。
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリの確保に失敗しました。
解説:
詳しくは SetSize の説明をご参照ください。 但し、 SetSize とは異なり、このコンストラクタの引数 horz, vert は 0 を指定できませんのでご注意ください。
バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
参照
SetSize
FVCL::GDI::CFvGdiImage::CFvGdiImage ( const CFvGdiImage src)

コピーコンストラクタ

同一クラスのオブジェクトから複製します。
複製に失敗した場合は、例外を発行します。

引数
[in]src複製元

同一クラスのオブジェクトから複製します。
複製に失敗した場合は、例外を発行します。

引数
[in]src複製元
例外
FVCL::CFveBadParamException
FVCL::CFveBadAllocException
FVCL::GDI::CFvGdiImage::CFvGdiImage ( const FVCL::Data::CFvImage src)

コンストラクタ (画像オブジェクトの複製)

CFvImage クラスの画像オブジェクトから複製します。
複製に失敗した場合は、例外を発行します。 複製可能か否かを事前に判断するには、 CheckCopyable 関数を使用してください。

引数
[in]src代入するオブジェクト
例外
FVCL::CFveBadParamException
FVCL::CFveBadAllocException
参照
CheckCopyable
FVCL::GDI::CFvGdiImage::CFvGdiImage ( const FVCL::Data::CFvRegion src,
FVCL::tagRGB32  density 
)

コンストラクタ (リージョンの複製)

指定されたリージョンオブジェクトから画像を生成して構築します。

  • 幅、高さ、位置をリージョンオブジェクトに合わせます。
  • ビットサイズを 32 bpp に設定します。
  • 前景色を density に、背景色を黒色(0x00)にします。
  • AlphaFormat は 1 に設定されます。
  • 画素毎のアルファ値は、前景が 0xFF、背景が 0x00 に設定されます。


引数
[in]src複製元のリージョンオブジェクト
[in]density描画色
戻り値
true正常
false異常
例外
FVCL::CFveFailedException
エラーコード:
定数 内容
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリの確保に失敗しました。
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 描画処理に失敗しました。
参照
CopyFrom
FVCL::GDI::CFvGdiImage::CFvGdiImage ( LPCTSTR  szFileName)

コンストラクタ (ファイル読み込み)

指定されたファイルからデータを復元します。
このコンストラクタは、内部で Load メソッドを実行しています。

引数
[in]szFileNameファイル名称
例外
FVCL::CFveException処理に失敗した場合は例外を発行します。
発行された例外インスタンスの GetErrorCode からエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER パラメータが無効です。ファイル名に NULL は指定できません。
6 FVCL_ErrorCode::FAILED_TO_LOAD ファイルの読み込みに失敗しました。 ファイルが存在しない場合やライセンスがない場合にこのエラーが発生します。
FVCL::GDI::CFvGdiImage::~CFvGdiImage ( )
virtual

デストラクタ

関数詳解

FVCL::GDI::CFvGdiImage::GetDataID ( ) const
virtual

データIDの取得

戻り値
このクラスのIDを返します。
参照
CFvGdiImage::DataID

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiImage::Play ( HDC  dc,
DOUBLE  magnification 
) const
virtual

描画処理の実行

指定されたデバイスコンテキストに画像を描画します。

引数
[in]dc描画先のデバイスコンテキスト
[in]magnification表示倍率 (0.0より大きい値)
戻り値
正常に描画された場合は 1 を返します。 正常に描画されなかった場合または 可視属性(CFvGdiFigure::m_enable)が非可視の場合は 0 を返します。

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiImage::GetDataObject ( CFvDataObject object) const
virtual

データオブジェクトへの変換

図形オブジェクトを互換性のあるデータオブジェクトに変換します。

引数
[in,out]object格納先のデータオブジェクトへのポインタ
戻り値
true正常
false異常
解説:
FVCL::Data::CFvImage へ変換します。 その他のデータオブジェクトを指定した場合は、何もせず戻り値に false を返します。 画像データをコピーせず、このオブジェクトが持つ画像アドレスにアタッチする場合は、 GetAttachedImage メソッドを使用してください。
GetAttachedImage

FVCL::GDI::CFvGdiFigureを再実装しています。

FVCL::GDI::CFvGdiImage::Clone ( ) const
virtual

クローンの生成

この画像クラスの複製を生成します。

戻り値
生成された画像クラスのオブジェクトへのポインタを返します。
メモリ不足によりオブジェクトを生成できなかった場合は NULL を返します。
解説:
画像クラスをヒープ領域に確保して、このオブジェクトの内容を代入して返します。

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiImage::GetClipRect ( ) const
virtual

外接矩形の取得

図形に外接する最小の矩形を取得します。

CFvGdiImage_GetClipRect.png
戻り値
外接矩形を返します。
解説:
返される矩形には 回転角(angle) と 機軸(center) が設定されています。
回転角には、この図形の GetAngle から取得した値が設定されます。 回転の機軸は、この図形の GetAxis (GetPosition からの相対値)を 矩形の左上からの相対値に変換した値が設定されます。

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiImage::CheckFocusMarkPosition ( const FVCL::Data::CFvPoint mouse,
DOUBLE  margin = 2.0 
) const
virtual

マウス位置の確認

マウスポインタの座標が図形上のどの位置にあるか確認します。

引数
[in]mouseマウスポインタの座標
[in]marginマージン (pixel単位)
戻り値
マウスポインタの座標が外接矩形外にあれば 0 を返します。
外接矩形内にあれば、下記の値の論理和を返します。
  • FVCL::GDI::RectPosition::Left
  • FVCL::GDI::RectPosition::Top
  • FVCL::GDI::RectPosition::Right
  • FVCL::GDI::RectPosition::Bottom
  • FVCL::GDI::RectPosition::Center

解説:
この関数は、指定されたマウス位置が外接矩形のどの位置にあるかを判定します。 GetClipRect でこの図形の外接矩形を取得して、親クラス(CFvGdiFigure)の CFvGdiFigure::CheckClipRectPosition を呼び出しています。
引数 mouse に指定された座標が、外接矩形の各辺の上(下図の青色部分)にあると、 該当する FVCL::GDI::RectPosition の値を返します。 全ての辺の内側に有る場合は、全ての辺の論理和(FVCL::GDI::RectPosition::ALL)を返します。 矩形の角や中心・各辺の中央では交差する辺の論理和を返します。(下図の橙色部分)
引数 margin には、マウス位置と矩形の各辺の比較を行う際の誤差範囲を指定します。 margin に 1 を指定すると、±1 画素の範囲で判定します。
CFvGdiImage_CheckFocusMarkPosition.png
参照
GetClipRect
CFvGdiFigure::CheckClipRectPosition
CFvGdiFigure::DrawFocusMark

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiImage::Load ( LPCTSTR  szFileName)
virtual

ファイル読み込み

指定されたファイルからデータを復元します。
このメソッドは、内部で FVCL::File::LoadImageFile を実行しています。 詳しくは、 FVCL::File::LoadImageFile の説明をご参照ください。

引数
[in]szFileNameファイル名称
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER パラメータが無効です。ファイル名に NULL は指定できません。
6 FVCL_ErrorCode::FAILED_TO_LOAD ファイルの読み込みに失敗しました。 ファイルが存在しない場合やライセンスがない場合にこのエラーが発生します。
FVCL::GDI::CFvGdiImage::Save ( LPCTSTR  szFileName) const
virtual

ファイル保存

指定されたファイルにデータを保存します。
このメソッドは、内部で FVCL::File::SaveImageFile を実行しています。 詳しくは、 FVCL::File::SaveImageFile の説明をご参照ください。

引数
[in]szFileNameファイル名称
※注) .conf ファイルがある場合は、カレントであってもパスを付加してください。
戻り値
true正常
false異常
GetErrorCodeメソッドによりエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER パラメータが無効です。ファイル名に NULL は指定できません。
7 FVCL_ErrorCode::FAILED_TO_SAVE ファイルへの保存に失敗しました。 ディレクトリが存在しないか書き込み禁止の場合、 またはライセンスがない場合にこのエラーが発生します。
FVCL::GDI::CFvGdiImage::Attach ( const FVCL::Data::CFvImage image)

画像オブジェクトへのアタッチ

画像オブジェクトの画像領域にアタッチします。
内部メモリは、事前に 開放 されます。

引数
[in]imageアタッチする画像オブジェクトへの参照
戻り値
true正常
false異常
解説:
この関数は、画像オブジェクトが表示デバイス互換の場合にのみ使用可能です。 表示デバイスと互換がない場合は false を返します。 表示デバイスと互換が有るか否かは CheckValidity で検査できます。
バージョン
FVCLbasic v1.3.0.0: 内部メモリを事前に開放するよう処理を追加しました。 従来は、呼び出し側で開放してから呼び出していましたが、 メモリリークを誘引するケースがある為、安全策としてこの関数内に開放処理を追加しました。
参照
CheckValidity
FVCL::GDI::CFvGdiImage::Detach ( )

アタッチの解除

アタッチしている場合は、このクラスのメンバ m_hdcReleaseHdc メソッドで開放した後、各メンバを 0 初期化します。 アタッチしていない場合は、何もせず false を返します。

戻り値
true正常
falseアタッチされていません
FVCL::GDI::CFvGdiImage::IsAttach ( ) const

アタッチ状態の取得

戻り値
trueアタッチしています
falseアタッチしていません
FVCL::GDI::CFvGdiImage::IsValid ( ) const

画像の正常性の確認

戻り値
true正常
false無効
FVCL::GDI::CFvGdiImage::GetAttachedImage ( FVCL::Data::CFvImage image) const

アタッチされた画像オブジェクトの取得

引数に指定された画像オブジェクトに このオブジェクトが持つ画像アドレスをアタッチして返します。 画像データをコピーする場合は、 GetDataObject メソッドで取得してください。

引数
[out]imageアタッチ用の画像オブジェクト
戻り値
true正常
false異常
GetErrorCode メソッドでエラーコードを取得できます。
エラーコード:
定数 内容
11 FVCL_ErrorCode::INVALID_PARAMETER 引数が無効です。有効なインスタンスを指定してください。
23 FVCL_ErrorCode::NOT_ALLOCATED 画像アドレスにNULLが指定されています。
17 FVCL_ErrorCode::INVALID_IMAGESIZE 画像サイズに 0 が指定されています。
16 FVCL_ErrorCode::INVALID_IMAGETYPE 画像種別が無効です。
18 FVCL_ErrorCode::INVALID_CHANNEL チャネル数が無効です
バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
解説:
このオブジェクトのピクセルサイズが 1 (2値)の時、 画像オブジェクト の画像種別(BIN)とは 互換性がありませんのでご注意ください。 通常は、ピクセルサイズが 8,24,32 の時に使用するものです。 画像オブジェクト の2値画像として使用する場合は、 SwapDwordOrder 関数を使用して DIB 仕様から FAST 仕様のバイトオーダーに入れ替える必要があります。 また、 FAST 仕様に変換された2値画像は CFvDisplay で正常に表示できませんので、 再度、 SwapDwordOrder 関数 を使用して FAST 仕様から DIB 仕様へ戻してください。
対応表:
bpp 互換 画像種別 チャネル数 画像情報 備考
1bpp × FVCL::ImageType::BIN 1 FVCL::ImageInfo::GRAY 画像処理で使用するにはバイトオーダーの入れ替えが必要です。
8bpp FVCL::ImageType::UC8 1 FVCL::ImageInfo::GRAY  
24bpp FVCL::ImageType::RGB24 1 FVCL::ImageInfo::RGB 本ライブラリの画像処理は、殆どの場合 RGB24 に対応していません。
32bpp FVCL::ImageType::RGB32 1 FVCL::ImageInfo::RGB  
参照
FVCL::Data::CFvImage::Attach(void* adrs, UINT horz, UINT vert, UINT type, void* handle )
FVCL::Conversion::SwapDwordOrder(UINT *dst_adrs, const UINT *src_adrs, size_t bytes)
FVCL::Conversion::SwapDwordOrder(UINT *adrs, size_t bytes)
GetDataObject
FVCL::GDI::CFvGdiImage::Free ( )
virtual
FVCL::GDI::CFvGdiImage::SetSize ( UINT  horz,
UINT  vert,
UINT  bpp 
)
virtual

領域の確保

画像の領域を確保します。

引数
[in]horz画像の幅 (pixel) [0,1~]
[in]vert画像の高さ (pixel) [0,1~]
[in]bppピクセルサイズ (bit) [1,8,24,32]
戻り値
true正常
false異常
解説:
画像の領域を確保します。アタッチ中の場合は解除してから領域の確保を行います。 確保された領域は 0 初期化されています。 但し、 bpp が 32 の時は、各画素のアルファチャネルを 0xFF に初期化します。 引数 horz , vert には、1以上の画素サイズを指定してください。 horz , vert のいずれかに 0 が指定された場合は現在の画像領域を開放します。 引数 bpp には ピクセルサイズをビット数で指定してください。 指定可能な値は 1,8,24,32 です。
FVCL::Data::CFvImage から複製可能な領域を確保する場合は、下記のように行ってください。 CheckCopyable は、複製可能か否かを検査します。 CalcValidBpp は、画像種別とチャネル数から適切な bpp を計算して返します。 下記の場合は、 src が 1画素 16bit の 3 チャネルの画像ですので、 CalcValidBpp は 24 bpp (8bppx3ch) を返します。 Copy 関数や代入オペレータを実行すると src のデータを 16bit から 8bit に 右シフトして dst に複製します。
src.SetSize( 640, 480, FVCL::ImageType::US16, 3 );
{
UINT horz = src.GetHorzSize();
UINT vert = src.GetVertSize();
src.GetImageType(),
src.GetChannel()
);
if( ! dst.SetSize( horz, vert, bpp ) )
throw FVCL::CFveBadAllocException(); // abort
dst.Copy( src ); // copy to dst from src
}

制限事項:
このクラスの内部で使用している CreateDIBSection 関数の制限により、2GB を超える画像メモリを確保できません。
また、このオブジェクトがビットマップハンドルを保有するため、大量にインスタンスを生成すると GDI リソースが枯渇します。
参照
CFvGdiImage::Free()
CheckCopyable
CalcValidBpp
FVCL::GDI::CFvGdiImage::GetSize ( UINT horz,
UINT vert,
UINT bpp 
) const

画像サイズの取得

引数
[out]horz画像の幅(pixel)
[out]vert画像の高さ(pixel)
[out]bpp画像の深さ
戻り値
true正常
false異常
FVCL::GDI::CFvGdiImage::GetSize ( ) const

画像サイズの取得

戻り値
画像の幅と高さが格納されたSIZE構造体を返します。
FVCL::GDI::CFvGdiImage::SetStretchHorzSize ( UINT  horz)

伸縮後の幅の設定

画像を伸縮表示する際の幅を設定します。

引数
[in]horz伸縮後の幅 (pixel) [0,1~]
戻り値
true正常
false異常
解説:
ここに 0 以外の値を設定すると、画像の実際の幅を伸縮して表示します。 例えば、画像のサムネイル表示や半透明ブラシの代用として利用できます。
FVCL::GDI::CFvGdiImage::GetStretchHorzSize ( ) const

伸縮後の幅の取得

画像を伸縮表示する際の幅を取得します。

戻り値
画像の伸縮後の幅を返します。
FVCL::GDI::CFvGdiImage::SetStretchVertSize ( UINT  vert)

伸縮後の高さの設定

画像を伸縮表示する際の高さを設定します。

引数
[in]vert画像の高さ (pixel) [0,1~]
戻り値
true正常
false異常
解説:
ここに 0 以外の値を設定すると、画像の実際の高さを伸縮して表示します。 例えば、画像のサムネイル表示や半透明ブラシの代用として利用できます。
FVCL::GDI::CFvGdiImage::GetStretchVertSize ( ) const

伸縮後の高さの取得

画像を伸縮表示する際の高さを取得します。

戻り値
画像の伸縮後の高さを返します。
FVCL::GDI::CFvGdiImage::GetHdc ( ) const

デバイスコンテキストの取得

このオブジェクトが持つビットマップハンドルに関連付けられたデバイスコンテキストを取得します。 使用後は ReleaseHdc メソッドで開放してください。

戻り値
デバイスコンテキストを返します。 関連付けが行えなかった場合は NULL を返します。
バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
解説:
スクリーンデバイスコンテキストと互換のあるデバイスコンテキストを生成して このオブジェクトが持つビットマップハンドルに関連付けて返します。 リソースが不足している場合や、ビットマップハンドルが無効の時は関連付けに失敗します。 使用後は必ず ReleaseHdc メソッドで開放してください。 開放せずに続けてこのメソッドを呼び出した場合は、前回と同様のデバイスコンテキストを返します。
このクラスの Play メソッド内の描画処理で GetHdcReleaseHdc を使用していますので、 Play 実行後は、デバイスコンテキストが開放されますのでご注意ください。
参照
ReleaseHdc
m_hdc
m_Handle
FVCL::GDI::CFvGdiImage::ReleaseHdc ( ) const

デバイスコンテキストの開放

このオブジェクトが持つビットマップハンドルに関連付けられたデバイスコンテキストを開放します。

バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
参照
GetHdc
m_hdc
m_Handle
FVCL::GDI::CFvGdiImage::GetHandle ( ) const

ビットマップハンドルの取得

戻り値
ビットマップハンドルを返します。 未確保の場合は NULL を返します。
FVCL::GDI::CFvGdiImage::GetImageAdrs ( UINT  x = 0,
UINT  y = 0 
) const

画像領域のアドレスの取得

引数
[in]x水平方向の座標 (pixel)
[in]y垂直方向の座標 (pixel)
戻り値
画像領域のアドレスを返します。
画像領域が未確保かアタッチしていない時は、NULL が返ります。
また、指定した座標が画像領域外の場合は、例外を発行します。
例外
FVCL::CFveBadAccessException
解説:
引数 x, y に座標が指定された場合は、該当する画素位置のアドレスを返します。 水平方向のアドレスの走査は、現在のピクセルサイズ(GetBpp)に依存します。 例えば、8 bpp の場合は 1byte 単位で走査しますが、 24 bpp の場合は 3 byte 単位、32 bpp の場合は 4 byte 単位に走査します。 例外として、 1 bpp の場合のみ 1byte 単位で走査します。 この場合の戻り値は、 x に 0~7 が指定された場合は 0 byte 目の先頭アドレスとなり、 x に 8~15 が指定された場合は 1 byte 目の先頭アドレスが返ります。
参照
SetPixelI64
GetPixelI64
SetPixelRGB
GetPixelRGB
SetPixelAlpha
GetPixelAlpha
FVCL::GDI::CFvGdiImage::SetPixelI32 ( UINT  x,
UINT  y,
INT  value 
)

画素値の設定 (整数)

指定位置の画素値を設定します。

引数
[in]x水平座標 (0~)
[in]y垂直座標 (0~)
[in]value設定する画素値
戻り値
true正常
false異常
例外
FVCL::CFveBadAccessException座標が領域外を示しています。
または、画像メモリが確保されていません。
解説:
ピクセルサイズが 1 bpp の時は、 value が 0 の時は 0 を設定し、それ以外は 1 を設定します。 カラー(24 bpp または 32 bpp)の時は、 R,G,B の各プレーンに value をキャストして設定します。 8 bit を超える値が指定された場合は溢れます。
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetImageAdrs
GetPixelI32
SetPixelI64
GetPixelI64
SetPixelRGB
GetPixelRGB
FVCL::GDI::CFvGdiImage::GetPixelI32 ( UINT  x,
UINT  y 
) const

画素値の取得 (整数)

指定位置の画素値を取得します。

引数
[in]x水平座標 (0~)
[in]y垂直座標 (0~)
戻り値
該当する位置の濃度値を INT に格納して返します。
例外
FVCL::CFveBadAccessException座標が領域外を示しています。
または、画像メモリが確保されていません。
解説:
カラー(24 bpp または 32 bpp)の時は、濃淡化(0~255)して返します。 1 bpp と 8 bpp の時は、キャストして返します。
バージョン
FVCLbasic v2.0.0.0: 新規追加
参照
GetImageAdrs
SetPixelI32
SetPixelI64
GetPixelI64
SetPixelRGB
GetPixelRGB
FVCL::GDI::CFvGdiImage::SetPixelI64 ( UINT  x,
UINT  y,
INT64  value 
)

画素値の設定 (整数)

指定位置の画素値を設定します。

引数
[in]x水平座標 (0~)
[in]y垂直座標 (0~)
[in]value設定する画素値
戻り値
true正常
false異常
例外
FVCL::CFveBadAccessException座標が領域外を示しています。
または、画像メモリが確保されていません。
解説:
ピクセルサイズが 1 bpp の時は、 value が 0 の時は 0 を設定し、それ以外は 1 を設定します。 カラー(24 bpp または 32 bpp)の時は、 R,G,B の各プレーンに value をキャストして設定します。 8 bit を超える値が指定された場合は溢れます。
バージョン
FVCLbasic v1.2.0.0: 新規に追加しました。
参照
GetImageAdrs
GetPixelI64
SetPixelI32
GetPixelI32
SetPixelRGB
GetPixelRGB
FVCL::GDI::CFvGdiImage::GetPixelI64 ( UINT  x,
UINT  y 
) const

画素値の取得 (整数)

指定位置の画素値を取得します。

引数
[in]x水平座標 (0~)
[in]y垂直座標 (0~)
戻り値
該当する位置の濃度値を INT64 に格納して返します。
例外
FVCL::CFveBadAccessException座標が領域外を示しています。
または、画像メモリが確保されていません。
解説:
カラー(24 bpp または 32 bpp)の時は、濃淡化(0~255)して返します。 1 bpp と 8 bpp の時は、キャストして返します。
バージョン
FVCLbasic v1.2.0.0: 新規に追加しました。
参照
GetImageAdrs
SetPixelI64
SetPixelI32
GetPixelI32
SetPixelRGB
GetPixelRGB
FVCL::GDI::CFvGdiImage::SetPixelRGB ( UINT  x,
UINT  y,
FVCL::tagRGB32  value 
)

画素値の設定 (カラー)

指定位置の画素値を設定します。

引数
[in]x水平座標 (0~)
[in]y垂直座標 (0~)
[in]value設定する画素値
戻り値
true正常
false異常
例外
FVCL::CFveBadAccessException座標が領域外を示しています。
または、画像メモリが確保されていません。
解説:
ピクセルサイズが 1 bpp の時は、 value の R,G,B の全ての値が 0 の時は 0 を設定し、それ以外は 1 を設定します。 24 bpp の時は、R,G,B の各プレーンを設定します。 32 bpp の時は、A,R,G,B の全てのプレーンをそのまま設定します。 8 bpp の時は、 value を濃淡化(0~255)し、キャストして設定します。
バージョン
FVCLbasic v1.2.0.0: 新規に追加しました。
参照
GetImageAdrs
GetPixelRGB
SetPixelAlpha
GetPixelAlpha
SetPixelI32
GetPixelI32
SetPixelI64
GetPixelI64
FVCL::GDI::CFvGdiImage::GetPixelRGB ( UINT  x,
UINT  y 
) const

画素値の取得 (カラー)

指定位置の画素値を取得します。

引数
[in]x水平座標 (0~)
[in]y垂直座標 (0~)
戻り値
該当する位置の濃度値を FVCL::tagRGB32 に格納して返します。
例外
FVCL::CFveBadAccessException座標が領域外を示しています。
または、画像メモリが確保されていません。
解説:
ピクセルサイズが 32 bpp の時は、A,R,G,B の全てのプレーンをそのまま返します。 24 bpp の時は、R,G,B の各プレーンを取得し、アルファ(A)に 0xFF を格納して返します。 1 bpp と 8 bpp の時は、R,G,B の各プレーンに同一の値を設定して、アルファ(A)に 0xFF を格納して返します。
バージョン
FVCLbasic v1.2.0.0: 新規に追加しました。
参照
GetImageAdrs
SetPixelRGB
SetPixelAlpha
GetPixelAlpha
SetPixelI32
GetPixelI32
SetPixelI64
GetPixelI64
FVCL::GDI::CFvGdiImage::SetPixelAlpha ( UINT  x,
UINT  y,
UCHAR  value 
)

画素毎の透明度(アルファ値)の設定

指定位置の透明度(アルファ値)を更新します。
アルファ値は 0x00 または 0xFF を指定できます。0x00 が透明、0xFF が不透明を表します。
それ以外を指定した場合は、描画色が不定になります。
現在保有する画像領域が 32 bpp でない場合は、何も変更されません。

引数
[in]x水平座標 [0~]
[in]y垂直座標 [0~]
[in]value設定する透明度 [0x00,0xFF]
戻り値
true正常
false異常
例外
FVCL::CFveBadAccessException座標が領域外を示しています。
または、画像メモリが確保されていません。
バージョン
FVCLbasic v1.2.0.0: 新規に追加しました。
参照
GetPixelAlpha
SetPixelRGB
GetPixelRGB
SetAlpha
GetAlpha
FVCL::GDI::CFvGdiImage::GetPixelAlpha ( UINT  x,
UINT  y 
) const

画素毎の透明度(アルファ値)の取得

指定位置の透明度(アルファ値)を取得します。
アルファ値は 0x00~0xFF の範囲で、0x00 が透明、0xFF が不透明を表します。

引数
[in]x水平座標 (0~)
[in]y垂直座標 (0~)
戻り値
該当する位置の透明度(アルファ値)を返します。
現在保有する画像領域が 32 bpp でない場合は、常に 0xFF を返します。
例外
FVCL::CFveBadAccessException座標が領域外を示しています。
または、画像メモリが確保されていません。
バージョン
FVCLbasic v1.2.0.0: 新規に追加しました。
参照
SetPixelAlpha
SetPixelRGB
GetPixelRGB
SetAlpha
GetAlpha
FVCL::GDI::CFvGdiImage::ClearAlpha ( )

画素毎の透明度(アルファ値)の一括更新

黒い画素の透明度(アルファ値)を 0x00 に設定し、それ以外を 0xFF に設定します。
アルファ値は 0x00 が透明、0xFF が不透明を表します。
現在保有する画像領域が 32 bpp でない場合は、何も変更されません。

例外
FVCL::CFveBadAccessException画像メモリが確保されていません。
バージョン
FVCLbasic v3.0.0.0: 新規に追加しました。
FVCL::GDI::CFvGdiImage::ClearAlpha ( UCHAR  red,
UCHAR  green,
UCHAR  blue,
UCHAR  alpha,
bool  condition 
)

画素毎の透明度(アルファ値)の一括更新

指定の画素値(red, green, blue)に該当する画素位置の透明度(アルファ値)を更新します。
アルファ値は 0x00 または 0xFF を指定できます。0x00 が透明、0xFF が不透明を表します。
それ以外を指定した場合は、描画色が不定になります。
現在保有する画像領域が 32 bpp でない場合は、何も変更されません。

引数
[in]red評価する画素値(赤)
[in]green評価する画素値(緑)
[in]blue評価する画素値(青)
[in]alpha更新後の透明度 [0x00,0xFF]
[in]condition評価条件
  • true : 画素値が全て一致した時に更新します
  • false : 画素値の何れかが一致しなかった時に更新します

例外
FVCL::CFveBadAccessException画像メモリが確保されていません。
バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
参照
GetImageAdrs
SetPixelAlpha
GetPixelAlpha
SetPixelRGB
GetPixelRGB
SetAlpha
GetAlpha
FVCL::Conversion::ToRGB32
FVCL::Conversion::ToRGB24
FVCL::GDI::CFvGdiImage::ClearAlpha ( FVCL::tagRGB32  rgb,
UCHAR  alpha,
bool  condition 
)

画素毎の透明度(アルファ値)の一括更新

指定の画素値(rgb.R, rgb.G, rgb.B)に該当する画素位置の透明度(アルファ値)を更新します。
アルファ値は 0x00 または 0xFF を指定できます。0x00 が透明、0xFF が不透明を表します。
それ以外を指定した場合は、描画色が不定になります。
現在保有する画像領域が 32 bpp でない場合は、何も変更されません。

引数
[in]rgb評価する画素値
rgb.A のフィールドは使用されません。
[in]alpha更新後の透明度 [0x00,0xFF]
[in]condition評価条件
  • true : 画素値が全て一致した時に更新します
  • false : 画素値の何れかが一致しなかった時に更新します

例外
FVCL::CFveBadAccessException画像メモリが確保されていません。
バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
参照
GetImageAdrs
SetPixelAlpha
GetPixelAlpha
SetPixelRGB
GetPixelRGB
SetAlpha
GetAlpha
FVCL::Conversion::ToRGB32
FVCL::Conversion::ToRGB24
FVCL::GDI::CFvGdiImage::ClearAlpha ( FVCL::tagRGB24  rgb,
UCHAR  alpha,
bool  condition 
)

画素毎の透明度(アルファ値)の一括更新

指定の画素値(rgb.R, rgb.G, rgb.B)に該当する画素位置の透明度(アルファ値)を更新します。
アルファ値は 0x00 または 0xFF を指定できます。0x00 が透明、0xFF が不透明を表します。
それ以外を指定した場合は、描画色が不定になります。
現在保有する画像領域が 32 bpp でない場合は、何も変更されません。

引数
[in]rgb評価する画素値
[in]alpha更新後の透明度 [0x00,0xFF]
[in]condition評価条件
  • true : 画素値が全て一致した時に更新します
  • false : 画素値の何れかが一致しなかった時に更新します

例外
FVCL::CFveBadAccessException画像メモリが確保されていません。
バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
参照
GetImageAdrs
SetPixelAlpha
GetPixelAlpha
SetPixelRGB
GetPixelRGB
SetAlpha
GetAlpha
FVCL::Conversion::ToRGB32
FVCL::Conversion::ToRGB24
FVCL::GDI::CFvGdiImage::Clear ( DOUBLE  value)

クリア

画像全体を指定された値でクリアします。

引数
[in]value画素値
戻り値
true正常
false異常
例外
FVCL::CFveBadAccessException画像メモリが確保されていません。
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::GDI::CFvGdiImage::Clear ( FVCL::tagRGB32  value)

クリア

画像全体を指定された値でクリアします。

現在の画像が 32 bpp の時は、value の A,R,G,B を上書きします。 24 bpp の時は、value の A は無視します。 1,8 bpp の時は、value の R,G,B を濃淡化した値で更新します。

引数
[in]value画素値
戻り値
true正常
false異常
例外
FVCL::CFveBadAccessException画像メモリが確保されていません。
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::GDI::CFvGdiImage::Clear ( FVCL::tagRGB24  value)

クリア

画像全体を指定された値でクリアします。

現在の画像が 32 bpp の時は、value の R,G,B のみを上書きしアルファ値は更新しません。 1,8 bpp の時は、value の R,G,B を濃淡化した値で更新します。

引数
[in]value画素値
戻り値
true正常
false異常
例外
FVCL::CFveBadAccessException画像メモリが確保されていません。
バージョン
FVCLbasic v2.0.0.0: 新規追加
FVCL::GDI::CFvGdiImage::GetHorzSize ( ) const

画像の幅の取得

戻り値
画像の幅をピクセル単位で返します。
FVCL::GDI::CFvGdiImage::GetVertSize ( ) const

画像の高さの取得

戻り値
画像の高さをピクセル単位で返します。
FVCL::GDI::CFvGdiImage::GetBpp ( ) const

画像のピクセルサイズの取得

画像のピクセルサイズを返します。

戻り値
12値
8グレイ
24カラー
32カラー(アルファ付き)
FVCL::GDI::CFvGdiImage::GetHorzByte ( ) const

画像領域の幅の取得

戻り値
画像領域の幅をバイト単位で返します。
FVCL::GDI::CFvGdiImage::GetMemSize ( ) const

画像領域のサイズの取得

戻り値
画像領域のサイズをバイト単位で返します。
FVCL::GDI::CFvGdiImage::SetPosition ( const FVCL::Data::CFvPoint position)
virtual

描画座標の設定

描画位置を変更します。

引数
[in]position描画座標
戻り値
true正常
false異常
解説:
画像の左上(m_position)を指定された座標に移動します。

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiImage::GetPosition ( ) const
virtual

描画座標の取得

描画座標を取得します。

戻り値
描画座標を返します。

FVCL::GDI::CFvGdiFigureを実装しています。

FVCL::GDI::CFvGdiImage::SetRasterOperation ( UINT  rasterope)

ラスターオペレーションコードの設定

画像を描画する際のラスタオペレーションコードを設定します。

引数
[in]rasteropeラスターオペレーションコード
FVCL::GDI::RasterOperation に定義された定数を指定してください。
戻り値
true正常
false異常
バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
解説:
  • None が設定された場合
    Windows GDI の AlphaBlend 関数で描画します。
    画像全体の透明度画素毎の透明度 を指定する場合は、 このラスターオペレーションコードにする必要があります。

参照
GetRasterOperation
FVCL::GDI::RasterOperation
SetAlpha , GetAlpha
SetAlphaFormat , GetAlphaFormat
SetHalftoneMode , GetHalftoneMode
FVCL::GDI::CFvGdiImage::GetRasterOperation ( ) const

ラスターオペレーションコードの取得

戻り値
現在設定されているラスターオペレーションコードを返します。 返される値の意味については FVCL::GDI::RasterOperation の説明をご参照ください。
バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
参照
SetRasterOperation
FVCL::GDI::RasterOperation
FVCL::GDI::CFvGdiImage::SetAlpha ( UCHAR  alpha)

透明度の設定

画像全体の透明度を指定します。

引数
[in]alpha画像の透明度 (0x00~0xFF)
0 は透明、0xFF は不透明を意味します。
戻り値
true正常
false異常
解説:
画像全体の透明度を指定する場合は、 ラスターオペレーションコードNone に設定してください。 それ以外の時は、この値は無視されます。
参照
GetAlpha
SetPixelAlpha
GetPixelAlpha
SetAlphaFormat
GetAlphaFormat
FVCL::GDI::CFvGdiImage::GetAlpha ( ) const

透明度の取得

戻り値
画像の透明度を返します。
参照
SetAlpha
SetPixelAlpha
GetPixelAlpha
SetAlphaFormat
GetAlphaFormat
FVCL::GDI::CFvGdiImage::SetAlphaFormat ( UCHAR  alpha_format)

アルファブレンド方法の設定

アルファブレンドの方法を指定します。

引数
[in]alpha_formatアルファブレンドの方法 (0/1)
  • 0: 無効
  • 1: 画素毎の透明度を有効にする

戻り値
true正常
false異常
解説:
このオブジェクトが保有する画像が 32bpp の時は、画素単位の透明度を指定できます。 画素単位の透明度を有効にする場合は alpha_format に 1 を指定してください。 また、 ラスターオペレーションコードNone に設定してください。 それ以外の時は、この値は無視されます。
参照
GetAlphaFormat
SetAlpha
GetAlpha
SetPixelAlpha
GetPixelAlpha
FVCL::GDI::CFvGdiImage::GetAlphaFormat ( ) const

アルファブレンド方法の取得

アルファブレンド方法(0,1)を返します。

戻り値
0無効
1画素毎の透明度が有効です
参照
SetAlphaFormat
SetAlpha
GetAlpha
SetPixelAlpha
GetPixelAlpha
FVCL::GDI::CFvGdiImage::SetHalftoneMode ( bool  halftone)

ハーフトーンモードの設定

画像の伸縮方法をハーフトーンにするか否かを設定します。

引数
[in]halftoneハーフトーンモード
  • true 設定
  • false 解除

戻り値
true正常
false異常
バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
解説:
この値が true の時、Windows GDI の SetStretchBltMode に HALFTONE を指定します。 false の時は COLORONCOLOR を指定します。 この値(HALFTONE)は、 ラスターオペレーションコードSrcCopy の時のみ有効です。 それ以外の時は、この値は無視されます。
参照
GetHalftoneMode
FVCL::GDI::CFvGdiImage::GetHalftoneMode ( ) const

ハーフトーンモードの取得

ハーフトーンモードの設定状態を取得します。

戻り値
trueハーフトーンモードに設定されています。
falseハーフトーンモードは解除されています。
バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
参照
SetHalftoneMode
FVCL::GDI::CFvGdiImage::SetScaling ( bool  scaling)

伸縮属性の設定

画像サイズを背景画像の表示倍率に追従するか否かを示します。

引数
[in]scaling伸縮属性。[true:表示倍率に追従します。false:表示倍率に追従しません。]
  • true 設定
  • false 解除

戻り値
true正常
false異常
参照
GetScaling
FVCL::GDI::CFvGdiImage::GetScaling ( ) const

伸縮属性の取得

戻り値
現在設定されている値を返します。
参照
SetScaling
FVCL::GDI::CFvGdiImage::CheckValidity ( const FVCL::Data::CFvImage image)
static

画像の有効性の確認

表示デバイスと互換があるか否かを確認します。

引数
[in]image確認対象の画像オブジェクト
戻り値
true有効
false無効
解説:
以下の条件が成立する時は true (有効)を返します。
  • 画像種別= FVCL::ImageType::UC8 , チャネル数=1, 深さ=8bit
  • 画像種別= FVCL::ImageType::RGB24 , チャネル数=1, 深さ=8bit
  • 画像種別= FVCL::ImageType::RGB32 , チャネル数=1, 深さ=8bit

FVCL::GDI::CFvGdiImage::CheckCopyable ( const FVCL::Data::CFvImage image)
static

画像の有効性の確認

複製可能か否かを確認します。

引数
[in]image確認対象の画像オブジェクト
戻り値
true可能
false不可能
解説:
下表に、画像オブジェクトの画像種別及びチャネル数と DIB形式の bpp の対応について示します。 下表の条件が成立する時は true (可能)を返します。
対応表:
入力の画像種別
(FVCL::ImageType)
入力のチャネル数 複製後のbpp 複製処理の概要
BIN 1 1bpp
UC8 1 8bpp
US16 1 8bpp 入力側の ビット深度 に従って 8bpp に減色します。
UI32 1 8bpp 入力側の ビット深度 に従って 8bpp に減色します。
UC8 3 24bpp 24bpp にパッキングします。
US16 3 24bpp 入力側の ビット深度 に従って 8bpp に減色後、24bpp にパッキングします。
UI32 3 24bpp 入力側の ビット深度 に従って 8bpp に減色後、24bpp にパッキングします。
RGB24 1 24bpp R,G,B のプレーンをそのまま複製します。
RGB32 1 32bpp R,G,B のプレーンをそのまま複製します。(アルファ値は上書きしません)
参照
CalcValidBpp
FVCL::GDI::CFvGdiImage::CalcWidthByte ( UINT  horz,
UINT  bpp 
)
static

画像領域の幅の算出

画像の幅と1画素のサイズから画像領域の幅を計算します。 画像領域は32bitでアライメントされます。

引数
[in]horz画像の幅(pixel)
[in]bpp1画素のサイズ(bit)
戻り値
画像領域の幅を返します。
FVCL::GDI::CFvGdiImage::CalcAllocBpp ( UINT  bpp)
static

画像1画素が必要とするビットサイズの算出

画像の1画素のサイズから、メモリ上のビットサイズを計算します。

引数
[in]bpp1画素のサイズ(bit)
戻り値
8bitでアライメントされたビット数を返します。
但し、1bppの時は 1bit が返ります。
FVCL::GDI::CFvGdiImage::CalcValidBpp ( UINT  type,
UINT  channel 
)
static

複製先領域に必要なビットサイズの算出

複製先領域に必要なビットサイズを計算します。

引数
[in]type画像種別
  • FVCL::ImageType::BIN
  • FVCL::ImageType::UC8
  • FVCL::ImageType::US16
  • FVCL::ImageType::UI32
  • FVCL::ImageType::RGB24
  • FVCL::ImageType::RGB32

[in]channelチャネル数 (1,3)
戻り値
1,8,24,32 のいずれかを返します。 複製不可能な条件の場合は、0 が返ります。
解説:
この関数は、表示デバイスと非互換の画像オブジェクトを画面に擬似的に表示する為に、 表示用バッファのサイズを計算する為に使用します。 例えば、画像種別が多ビット(16,32bit)を示す場合は、表示用バッファのビットサイズを 8bit として計算します。 また、複数チャネルの場合は、パッキング後のビットサイズになります。
参照
CheckCopyable
FVCL::GDI::CFvGdiImage::CopyFrom ( const FVCL::Data::CFvRegion src,
FVCL::tagRGB32  density 
)

リージョンの複製

指定されたリージョンオブジェクトをこの画像に描画します。

  • 幅、高さ、位置をリージョンオブジェクトに合わせます。
  • ビットサイズを 32 bpp に設定します。
  • 前景色を density に、背景色を黒色(0x00)にします。
  • AlphaFormat は 1 に設定されます。
  • 画素毎のアルファ値は、前景が 0xFF、背景が 0x00 に設定されます。


引数
[in]src複製元のリージョンオブジェクト
[in]density描画色
戻り値
true正常
false異常
エラーコード:
定数 内容
1 FVCL_ErrorCode::FAILED_TO_ALLOCATE メモリの確保に失敗しました。
8 FVCL_ErrorCode::FAILED_TO_EXECUTE 描画処理に失敗しました。
FVCL::GDI::CFvGdiImage::Copy ( const FVCL::Data::CFvImage src,
UINT  option = 0 
)

画像の複製

FVCL::Data::CFvImage クラスの画像オブジェクトから画像データを複製します。
複製処理の挙動については CheckCopyable の説明をご参照ください。

引数
[in]src複製元の画像オブジェクト
[in]optionオプション
  • 0: 通常のコピー処理を行います。
  • 1: 複製元と複製先の何れも 32 bpp (RGB32) の時、アルファ値もコピーします。

戻り値
true正常
false異常
エラーコード:
定数 内容
23 FVCL_ErrorCode::NOT_ALLOCATED メモリが確保されていません。
11 FVCL_ErrorCode::INVALID_PARAMETER 引数に誤りがあります。
19 FVCL_ErrorCode::INVALID_PROCAREA 処理範囲が異常です。
96 FVCL_ErrorCode::NOMATCH_IMAGESIZE 引数 src の処理範囲サイズが、このオブジェクトの領域サイズを超えています。
解説:
引数 src に指定された画像オブジェクトの処理範囲の部分を このオブジェクトの画像領域へ複製します。 このオブジェクトの画像領域は、複製元の処理範囲以上のサイズが必要です。 複製可能か否かは、 CheckCopyable で判定できます。
srcRGB32 で このオブジェクトが 32 bpp の時、 option に 1 を指定するとアルファ値もコピーしますが、 本ライブラリの画像処理機能はアルファ値を考慮していない為、 0 にリセットされているか不定値の場合がありますのでご注意ください。 通常は、 option に 0 を指定してコピーしてから、 ClearAlpha などでアルファ値を初期化することを推奨します。
この画像オブジェクトが 1bpp の時、複製元の画像種別が BIN 以外の場合は、 画素値が 0 のものを 0 に、それ以外を 1 に変換します。
複製元が BIN で、この画像オブジェクトが 8,24,32 bpp の場合は、 0 を 0 に、1 を 255 に変換します。カラーの場合は各プレーンが 255 になります。
それ以外の組み合わせでは、増色または減色してコピーします。
バージョン
FVCLbasic v1.3.0.0: オプション 1 を追加しました。
バグ:
FVCLbasic v1.3.0.0: 2値からカラー(24bpp,32bpp)へのコピーでアクセス違反が発生する不具合を改修しました。
参照
CheckCopyable
ClearAlpha
SetPixelAlpha
GetPixelAlpha
_Copy
_CopyFromARGB
FVCL::GDI::CFvGdiImage::operator= ( const FVCL::Data::CFvImage src)
virtual

代入オペレータ

CFvImage クラスの画像オブジェクトから画像データを複製します。

引数
[in]src代入するオブジェクト
戻り値
自身のオブジェクトへの参照を返します。
失敗した場合は、例外を発行します。
例外
FVCL::CFveBadParamException
FVCL::CFveBadAllocException
解説:
右辺値 src に指定された画像オブジェクトの画像領域全体を このクラスの画像領域へ複製します。 このクラスの画像領域は src の画像領域に合わされます。 複製が不可能な場合や画像領域の確保に失敗した場合は、例外を発行します。 複製可能か否かを事前に判断するには、 CheckCopyable 関数を使用してください。
参照
CheckCopyable
FVCL::GDI::CFvGdiImage::operator= ( const CFvGdiImage src)
virtual

代入オペレータ

同一クラスのオブジェクトの内容を複製します。

引数
[in]src複製元
戻り値
自身のオブジェクトへの参照を返します。
失敗した場合は、例外を発行します。
例外
FVCL::CFveBadAllocException
FVCL::GDI::CFvGdiImage::operator== ( const CFvGdiFigure src) const
virtual

比較オペレータ(==)

同一クラスのオブジェクトの内容を比較します。

以下の条件は比較対象ではありません。

  • 画像データの内容
  • 画像領域アドレス (m_ImageAdrs)
  • ビットマップハンドル (m_Handle)
  • アタッチの有無 (m_IsAttach)


引数
[in]src比較対象
戻り値
true一致
false不一致
解説:
一般的には、比較オペレータの引数は自身と同一のクラスにしますが、 図形構造クラスでは、引数を基本クラス(CFvGdiFigure)にしています。 これは、基本クラス(CFvGdiFigure)の比較オペレータをオーバーライドする為です。
比較オペレータの引数の型を基本クラスと同一にする事により、 このオブジェクトが基本クラス(CFvGdiFigure)にキャストされていても 比較オペレータを安全に呼び出す事が可能になります。 ユーザ定義の図形構造クラスを作成される場合はこの点(引数の型)にご注意ください。

FVCL::GDI::CFvGdiFigureを再実装しています。

FVCL::GDI::CFvGdiImage::operator!= ( const CFvGdiFigure src) const
virtual

比較オペレータ(!=)

同一クラスのオブジェクトの内容を比較します。

引数
[in]src比較対象
戻り値
true不一致
false一致

FVCL::GDI::CFvGdiFigureを再実装しています。

FVCL::GDI::CFvGdiImage::_Allocate ( UINT  horz,
UINT  vert,
UINT  bpp 
)
protected

画像領域の確保

内部メモリを確保します。
horz, vert の何れかが 0 の時、メモリを 開放 します。

引数
[in]horz画像の幅(pixel)
[in]vert画像の高さ(pixel)
[in]bpp1画素のサイズ(bit)
戻り値
true正常
false異常
FVCL::GDI::CFvGdiImage::_Free ( )
protected

画像領域の開放

このクラスのメンバ m_hdcReleaseHdc メソッドで開放して Detach を行った後、 ビットマップハンドル(m_Handle)を DeleteObject で開放してから、各メンバを 0 初期化しています。

FVCL::GDI::CFvGdiImage::_CreateDIB ( UINT  horz,
UINT  vert,
UINT  bpp,
void **  handle,
void **  image 
)
protected

画像領域の確保

引数
[in]horz画像の幅(pixel)
[in]vert画像の高さ(pixel)
[in]bpp1画素のサイズ(bit)
[out]handleビットマップハンドルを格納する変数へのポインタ
[out]image画像領域へのアドレスを格納する変数へのポインタ
戻り値
true正常
false異常
FVCL::GDI::CFvGdiImage::_Copy ( const FVCL::Data::CFvImage src,
const FVCL::Data::CFvRectangle area,
UINT  option = 0 
)
protected

画像の複製

FVCL::Data::CFvImage クラスの画像オブジェクトから複製します。

引数
[in]src複製元の画像オブジェクト
[in]area複製する範囲(NULLを指定した場合は全面を複製します)
[in]optionオプション
  • 0: 通常のコピー処理を行います。
  • 1: 複製元と複製先の何れも 32 bpp (RGB32) の時、アルファ値もコピーします。

戻り値
true正常
false異常
参照
_Copy
_CopyFromARGB
FVCL::GDI::CFvGdiImage::_CopyFromBIN ( const void *  adrs,
const RECT region,
UINT  depth,
UINT  wbytes 
)
protected

画像の複製

この関数の動作は完全ではありません。
機能互換の為に残していますが、新しい開発では使用しないでください。
画像のコピーは、このクラスの Copy メソッドを使用してください。

引数に指定された画像領域からこのオブジェクトの画像領域へ複製します。

引数
[in]adrs複製元画像のアドレス
[in]region複製範囲 (終点座標を含みます)
[in]depth複製元画像の深さ (無視されます)
[in]wbytes複製元画像領域の水平サイズ(byte)
戻り値
true正常
false異常
FVCL::GDI::CFvGdiImage::_CopyFromUC8 ( const void *  adrs,
const RECT region,
UINT  depth,
UINT  wbytes 
)
protected

画像の複製

この関数の動作は完全ではありません。
機能互換の為に残していますが、新しい開発では使用しないでください。
画像のコピーは、このクラスの Copy メソッドを使用してください。

引数に指定された画像領域からこのオブジェクトの画像領域へ複製します。

引数
[in]adrs複製元画像のアドレス
[in]region複製範囲 (終点座標を含みます)
[in]depth複製元画像の深さ (8のみ許容します)
[in]wbytes複製元画像領域の水平サイズ(byte)
戻り値
true正常
false異常
FVCL::GDI::CFvGdiImage::_CopyFromUC8x3 ( const void **  adrs,
const RECT region,
UINT  depth,
UINT  wbytes 
)
protected

画像の複製

この関数の動作は完全ではありません。
機能互換の為に残していますが、新しい開発では使用しないでください。
画像のコピーは、このクラスの Copy メソッドを使用してください。

引数に指定された画像領域からこのオブジェクトの画像領域へ複製します。

引数
[in]adrs複製元画像のアドレスが格納された配列
[in]region複製範囲 (終点座標を含みます)
[in]depth複製元画像の深さ (8のみ許容します)
[in]wbytes複製元画像領域の水平サイズ(byte)
戻り値
true正常
false異常
FVCL::GDI::CFvGdiImage::_CopyFromUS16 ( const void *  adrs,
const RECT region,
UINT  depth,
UINT  wbytes 
)
protected

画像の複製

この関数の動作は完全ではありません。
機能互換の為に残していますが、新しい開発では使用しないでください。
画像のコピーは、このクラスの Copy メソッドを使用してください。

引数に指定された画像領域からこのオブジェクトの画像領域へ複製します。

引数
[in]adrs複製元画像のアドレス
[in]region複製範囲 (終点座標を含みます)
[in]depth複製元画像の深さ (8~16)
[in]wbytes複製元画像領域の水平サイズ(byte)
戻り値
true正常
false異常
FVCL::GDI::CFvGdiImage::_CopyFromUS16x3 ( const void **  adrs,
const RECT region,
UINT  depth,
UINT  wbytes 
)
protected

画像の複製

この関数の動作は完全ではありません。
機能互換の為に残していますが、新しい開発では使用しないでください。
画像のコピーは、このクラスの Copy メソッドを使用してください。

引数に指定された画像領域からこのオブジェクトの画像領域へ複製します。

引数
[in]adrs複製元画像のアドレスが格納された配列
[in]region複製範囲 (終点座標を含みます)
[in]depth複製元画像の深さ (8~16)
[in]wbytes複製元画像領域の水平サイズ(byte)
戻り値
true正常
false異常
FVCL::GDI::CFvGdiImage::_CopyFromUI32 ( const void *  adrs,
const RECT region,
UINT  depth,
UINT  wbytes 
)
protected

画像の複製

この関数の動作は完全ではありません。
機能互換の為に残していますが、新しい開発では使用しないでください。
画像のコピーは、このクラスの Copy メソッドを使用してください。

引数に指定された画像領域からこのオブジェクトの画像領域へ複製します。

引数
[in]adrs複製元画像のアドレス
[in]region複製範囲 (終点座標を含みます)
[in]depth複製元画像の深さ (8~32)
[in]wbytes複製元画像領域の水平サイズ(byte)
戻り値
true正常
false異常
FVCL::GDI::CFvGdiImage::_CopyFromUI32x3 ( const void **  adrs,
const RECT region,
UINT  depth,
UINT  wbytes 
)
protected

画像の複製

この関数の動作は完全ではありません。
機能互換の為に残していますが、新しい開発では使用しないでください。
画像のコピーは、このクラスの Copy メソッドを使用してください。

引数に指定された画像領域からこのオブジェクトの画像領域へ複製します。

引数
[in]adrs複製元画像のアドレスが格納された配列
[in]region複製範囲 (終点座標を含みます)
[in]depth複製元画像の深さ (8~32)
[in]wbytes複製元画像領域の水平サイズ(byte)
戻り値
true正常
false異常
FVCL::GDI::CFvGdiImage::_CopyFromRGB24 ( const void *  adrs,
const RECT region,
UINT  depth,
UINT  wbytes 
)
protected

画像の複製

この関数の動作は完全ではありません。
機能互換の為に残していますが、新しい開発では使用しないでください。
画像のコピーは、このクラスの Copy メソッドを使用してください。

引数に指定された画像領域からこのオブジェクトの画像領域へ複製します。

引数
[in]adrs複製元画像のアドレス
[in]region複製範囲 (終点座標を含みます)
[in]depth複製元画像の深さ (8のみ許容します)
[in]wbytes複製元画像領域の水平サイズ(byte)
戻り値
true正常
false異常
FVCL::GDI::CFvGdiImage::_CopyFromRGB32 ( const void *  adrs,
const RECT region,
UINT  depth,
UINT  wbytes 
)
protected

画像の複製

この関数の動作は完全ではありません。
機能互換の為に残していますが、新しい開発では使用しないでください。
画像のコピーは、このクラスの Copy メソッドを使用してください。

引数に指定された画像領域からこのオブジェクトの画像領域へ複製します。

引数
[in]adrs複製元画像のアドレス
[in]region複製範囲 (終点座標を含みます)
[in]depth複製元画像の深さ (8~10)
[in]wbytes複製元画像領域の水平サイズ(byte)
戻り値
true正常
false異常
FVCL::GDI::CFvGdiImage::_CopyFromARGB ( const void *  adrs,
const RECT region,
UINT  wbytes 
)
protected

画像の複製

この関数の動作は完全ではありません。
機能互換の為に残していますが、新しい開発では使用しないでください。
画像のコピーは、このクラスの Copy メソッドを使用してください。

引数に指定された画像領域からこのオブジェクトの画像領域へ複製します。

引数
[in]adrs複製元画像のアドレス
[in]region複製範囲 (終点座標を含みます)
[in]wbytes複製元画像領域の水平サイズ(byte)
戻り値
true正常
false異常
参照
_Copy

メンバ詳解

FVCL::GDI::CFvGdiImage::m_position

基準位置

画像の基準位置を保持します。
この座標を左上とする画像が描画されます。

参照
SetPosition
GetPosition
FVCL::GDI::CFvGdiImage::m_RasterOperation
protected

ラスターオペレーションコード

実行するべきラスタオペレーションコードを保持します。

バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
参照
SetRasterOperation
GetRasterOperation
FVCL::GDI::CFvGdiImage::m_Alpha
protected

アルファブレンド処理の透明度

画像全体の透明度を保持します。 透明度は 0x00~0xFF の範囲です。0x00 が透明、0xFF が不透明を意味します。

ラスターオペレーションコードNone の時のみ使用できます。 それ以外では無視されます。

参照
SetAlpha
GetAlpha
FVCL::GDI::CFvGdiImage::m_AlphaFormat
protected

アルファブレンド処理のフォーマット

画素毎の透明度の指定を有効にするか否かを保持します。 有効にする場合は 1 を、無効にする場合は 0 を指定してください。

ラスターオペレーションコードNone で且つ 画像が 32bpp の時のみ使用できます。 それ以外では無視されます。

参照
SetAlphaFormat
GetAlphaFormat
FVCL::GDI::CFvGdiImage::m_HalftoneMode
protected

ハーフトーンモード

画像の伸縮方法(ストレッチモード)をハーフトーンにするか否かの設定値です。

ラスターオペレーションコードSrcCopy の時のみ使用できます。 それ以外では無視されます。

バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
参照
SetHalftoneMode
GetHalftoneMode
FVCL::GDI::CFvGdiImage::m_Handle
protected

ビットマップハンドル

参照
GetHandle
FVCL::GDI::CFvGdiImage::m_ImageAdrs
protected

画像領域の先頭アドレス

参照
GetImageAdrs
FVCL::GDI::CFvGdiImage::m_HorzSize
protected

画像の幅(pixel)

参照
GetHorzSize
FVCL::GDI::CFvGdiImage::m_VertSize
protected

画像の高さ(pixel)

参照
GetVertSize
FVCL::GDI::CFvGdiImage::m_Bpp
protected

画像1画素辺りのビット数

参照
GetBpp
FVCL::GDI::CFvGdiImage::m_HorzByte
protected

画像の水平サイズ(byte)

参照
GetHorzByte
FVCL::GDI::CFvGdiImage::m_IsAttach
protected

アタッチの有無

参照
Attach
IsAttach
FVCL::GDI::CFvGdiImage::m_StretchHorzSize
protected

伸縮後の幅(pixel)

参照
SetStretchHorzSize
GetStretchHorzSize
FVCL::GDI::CFvGdiImage::m_StretchVertSize
protected

伸縮後の高さ(pixel)

参照
SetStretchVertSize
GetStretchVertSize
FVCL::GDI::CFvGdiImage::m_Scaling
protected

伸縮属性

参照
SetScaling
GetScaling
FVCL::GDI::CFvGdiImage::m_hdc
mutableprotected

関連付けられたデバイスコンテキスト

GetHdc メソッドでビットマップハンドルに関連付けられた デバイスコンテキストを保持します。

バージョン
FVCLbasic v1.3.0.0: 新規に追加しました。
参照
GetHdc
ReleaseHdc

Documentation copyright © 2007 FAST Corporation. [B-001864]
Generated on 2024年10月10日(木) 10時01分34秒 for WIL説明書(C++) by doxygen 1.8.11