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

GDI+ 管理クラス [詳解]

#include <TnbGdiPlus.h>

クラス

class  CPos
 GDI+用座標型 [詳解]
 

公開型

enum  EBitmapFormat {
  BMP , JPEG , JPG = JPEG , GIF ,
  TIFF , TIF = TIFF , PNG
}
 Saveフォーマット値 [詳解]
 
enum  EFontStyle {
  REGULAR = Gdiplus::FontStyleRegular , BOLD = Gdiplus::FontStyleBold , ITALIC = Gdiplus::FontStyleItalic , UNDERLINE = Gdiplus::FontStyleUnderline ,
  STRIKEOUT = Gdiplus::FontStyleStrikeout
}
 フォントスタイル値. [詳解]
 
enum  EInterpolationMode {
  BICUBIC = Gdiplus::InterpolationModeBicubic , BILINEAR = Gdiplus::InterpolationModeBilinear , HIGH = Gdiplus::InterpolationModeHighQuality , HQ_BICUBIC = Gdiplus::InterpolationModeHighQualityBicubic ,
  HQ_BILINEAR = Gdiplus::InterpolationModeHighQualityBilinear , LOW = Gdiplus::InterpolationModeLowQuality , NEAREST_NEIGHBOR = Gdiplus::InterpolationModeNearestNeighbor
}
 イメージ操作アルゴリズムモード値. [詳解]
 
enum  ESmoothingMode { HIGH_SPEED = Gdiplus::SmoothingModeHighSpeed , HIGH_QUALITY = Gdiplus::SmoothingModeHighQuality , NONE = Gdiplus::SmoothingModeNone , ANTI_ALIAS = Gdiplus::SmoothingModeAntiAlias }
 スムージングモード値. [詳解]
 
enum  ETextRenderingHint { SYSTEM_DEFAULT = Gdiplus::TextRenderingHintSystemDefault , BITPERPIXEL = Gdiplus::TextRenderingHintSingleBitPerPixelGridFit , ANTIALIAS = Gdiplus::TextRenderingHintAntiAliasGridFit , CLEARTYPE = Gdiplus::TextRenderingHintClearTypeGridFit }
 テキストレンダリングヒント値. [詳解]
 

公開メンバ関数

 CGdiPlus (const CGdiPlus &other)
 コピーコンストラクタ. [詳解]
 
 CGdiPlus (HDC hdc)
 コンストラクタ. [詳解]
 
 CGdiPlus (void)
 コンストラクタ. [詳解]
 
void ClearImageAttribute (void)
 [設定] イメージ描画属性クリア. [詳解]
 
bool DrawFitImage (const RECT &rc, HBITMAP bmp, bool isFlipX=false, bool isFlipY=false) const
 [描画] ビットマップフィット描画. [詳解]
 
bool DrawImage (const CGdiPlus::CPos &po, HBITMAP bmp, double mag=1.0, bool isFlipX=false, bool isFlipY=false) const
 [描画] ビットマップ描画. [詳解]
 
bool DrawLine (const CPos &s, const CPos &e)
 [描画] ライン描画. [詳解]
 
bool DrawRotateImage (const CGdiPlus::CPos &po, HBITMAP bmp, const CGdiPlus::CPos &hotSpot, double angle, double mag=1.0) const
 [描画] ビットマップ回転描画. [詳解]
 
bool DrawRotateImage (const CGdiPlus::CPos &po, HBITMAP bmp, double angle, double mag=1.0) const
 [描画] ビットマップ回転描画. [詳解]
 
bool DrawSkewImage (const CGdiPlus::CPos &po, HBITMAP bmp, const CGdiPlus::CPos &diff, double mag=1.0) const
 [描画] ビットマップ傾斜描画. [詳解]
 
bool DrawText (const CGdiPlus::CPos &po, LPCWSTR lpsz) const
 [描画] テキスト描画. [詳解]
 
bool DrawText (const RECT &rc, LPCWSTR lpsz) const
 [描画] テキスト描画. [詳解]
 
CGdiPlusoperator= (const CGdiPlus &other)
 コピーオペレータ. [詳解]
 
CPointerHandleT< Gdiplus::ImageAttributes > ReferImageAttribute (void)
 [設定] イメージ描画属性参照. [詳解]
 
bool SetBrush (COLORREF color)
 [設定] ブラシ設定. [詳解]
 
bool SetBrush (HBITMAP bmp)
 [設定] ブラシ設定. [詳解]
 
bool SetDC (HDC hdc)
 [設定] デバイスコンテキスト設定. [詳解]
 
bool SetFont (HFONT hFont)
 [設定] フォント設定. [詳解]
 
bool SetFont (LPCWSTR lpszFontName, float size, int style=REGULAR)
 [設定] フォント設定. [詳解]
 
bool SetImageInterpolationMode (EInterpolationMode mode)
 [設定] イメージ描画アルゴリズム設定. [詳解]
 
void SetImageTransparentColor (COLORREF colorLow, COLORREF colorHigh)
 [設定] イメージ描画透過色指定. [詳解]
 
bool SetPen (COLORREF color, float width)
 [設定] ペン設定. [詳解]
 
bool SetSmoothingMode (ESmoothingMode mode)
 [設定] スムージングモード設定. [詳解]
 
bool SetTextRenderingHint (ETextRenderingHint hint, bool boIsGridFit=false)
 [設定] テキストレンダリングヒント設定. [詳解]
 
bool SetTextStyle (DWORD drawTextStyle)
 [設定] テキストスタイル設定. [詳解]
 
virtual ~CGdiPlus (void)
 デストラクタ [詳解]
 

静的公開メンバ関数

static bool DrawAntialiasText (HDC dc, HFONT hFont, DWORD drawTextStyle, COLORREF color, const CGdiPlus::CPos &po, LPCWSTR lpsz)
 [表示] 文字列表示. [詳解]
 
static HBITMAP LoadBitmap (LPCWSTR lpsz)
 [作成] 画像ファイル読込み. [詳解]
 
static HBITMAP LoadThumbnail (LPCWSTR lpsz)
 [作成] サムネイル画像ファイル読込み. [詳解]
 
static bool SaveBitmap (LPCWSTR lpsz, Gdiplus::Bitmap &bmp, EBitmapFormat fmt=BMP, LONG jpegQuality=80)
 [作成] 画像ファイル作成. [詳解]
 
static bool SaveBitmap (LPCWSTR lpsz, HBITMAP hBmp, EBitmapFormat fmt=BMP, LONG jpegQuality=80)
 [作成] 画像ファイル作成. [詳解]
 
static bool Startup (void)
 [設定] GDI+ 初期化. [詳解]
 

詳解

GDI+ 管理クラス

todo:
作りかけ
注意
非 UNICODEプロジェクトでも、本クラスの文字列は UNICODE で指定する必要があります。 CUnicode 等、使用してください。
必要ファイル
TnbGdiPlus.h
日付
07/10/29 新規作成。
08/07/14 回転描画処理を改善。
09/01/14 Jpegのクオリティ指定、追加。
09/02/02 newマクロ(VC6)対策。
11/08/11 DT_* スタイルの処理が縦横逆になっていたのを修正。
19/03/27 DrawLine() 追加。

TnbGdiPlus.h58 行目に定義があります。

列挙型メンバ詳解

◆ EBitmapFormat

Saveフォーマット値

参照
SaveBitmap()
列挙値
BMP 

BMP

JPEG 

JPEG

JPG 

JPEG

GIF 

GIF

TIFF 

TIFF

TIF 

TIFF

PNG 

PNG

TnbGdiPlus.h755 行目に定義があります。

◆ EFontStyle

enum EFontStyle

フォントスタイル値.

参照
SetFont()
列挙値
REGULAR 

通常

BOLD 

太字

ITALIC 

斜め

UNDERLINE 

下線

STRIKEOUT 

Strikeout

TnbGdiPlus.h190 行目に定義があります。

◆ EInterpolationMode

イメージ操作アルゴリズムモード値.

参照
SetImageInterpolationMode()
列挙値
BICUBIC 

双三次補間を指定します。事前フィルタ処理は実行されません。このモードは、イメージを元のサイズの 25% 以下にするような縮小処理には適していません。

BILINEAR 

双一次補間を指定します。事前フィルタ処理は実行されません。このモードは、イメージを元のサイズの 50% 以下にするような縮小処理には適していません。

HIGH 

高品質補間を指定します。

HQ_BICUBIC 

高品質双三次補間を指定します。事前フィルタ処理が適用され、高品質の縮小処理が実行されます。このモードを使用すると、変換後のイメージが高品質になります。

HQ_BILINEAR 

高品質双一次補間を指定します。事前フィルタ処理が適用され、高品質の縮小処理が実行されます。

LOW 

低品質補間を指定します。

NEAREST_NEIGHBOR 

最近傍補間を指定します。

TnbGdiPlus.h355 行目に定義があります。

◆ ESmoothingMode

スムージングモード値.

参照
SetSmoothingMode()
列挙値
HIGH_SPEED 

高速で、低品質のレンダリングを指定します。

HIGH_QUALITY 

高品質で低速なレンダリングを指定します。

NONE 

アンチエイリアス処理しないことを指定します。

ANTI_ALIAS 

アンチエイリアス処理されたレタリングを指定します。

TnbGdiPlus.h583 行目に定義があります。

◆ ETextRenderingHint

テキストレンダリングヒント値.

参照
SetTextRenderingHint()
列挙値
SYSTEM_DEFAULT 

システムデフォルト

BITPERPIXEL 

ビットマップ

ANTIALIAS 

アンチエイリアス

CLEARTYPE 

クリアタイプ

TnbGdiPlus.h277 行目に定義があります。

構築子と解体子

◆ ~CGdiPlus()

virtual ~CGdiPlus ( void  )
virtual

デストラクタ

TnbGdiPlus.h102 行目に定義があります。

◆ CGdiPlus() [1/3]

CGdiPlus ( void  )

コンストラクタ.

TnbGdiPlus.h109 行目に定義があります。

◆ CGdiPlus() [2/3]

CGdiPlus ( HDC  hdc)

コンストラクタ.

引数
hdcデバイスコンテキストハンドル

TnbGdiPlus.h118 行目に定義があります。

◆ CGdiPlus() [3/3]

CGdiPlus ( const CGdiPlus other)

コピーコンストラクタ.

引数
otherコピー元

TnbGdiPlus.h129 行目に定義があります。

関数詳解

◆ ClearImageAttribute()

void ClearImageAttribute ( void  )

[設定] イメージ描画属性クリア.

覚え書き
SetImageTransparentColor() の設定を無効にします。

TnbGdiPlus.h386 行目に定義があります。

◆ DrawAntialiasText()

static bool DrawAntialiasText ( HDC  dc,
HFONT  hFont,
DWORD  drawTextStyle,
COLORREF  color,
const CGdiPlus::CPos po,
LPCWSTR  lpsz 
)
static

[表示] 文字列表示.

引数
dcデバイスコンテキスト。
hFontフォント。
drawTextStyleDT_ で始まるシンボルの組み合わせを指定できます。
color色。
po座標。
lpsz文字列。
戻り値
true成功。
false失敗。

TnbGdiPlus.h670 行目に定義があります。

◆ DrawFitImage()

bool DrawFitImage ( const RECT &  rc,
HBITMAP  bmp,
bool  isFlipX = false,
bool  isFlipY = false 
) const

[描画] ビットマップフィット描画.

指定の表示位置に画像の比率を変えずに表示します。

引数
rc表示位置
bmpビットマップ
isFlipXtrue を指定すると 水平方向に反転します。
isFlipYtrue を指定すると 垂直方向に反転します。
戻り値
false失敗。 デバイスコンテキストなどが指定されていません。
true成功。

TnbGdiPlus.h474 行目に定義があります。

◆ DrawImage()

bool DrawImage ( const CGdiPlus::CPos po,
HBITMAP  bmp,
double  mag = 1.0,
bool  isFlipX = false,
bool  isFlipY = false 
) const

[描画] ビットマップ描画.

引数
po表示位置
bmpビットマップ
mag倍率。省略すると 1 になります。
isFlipXtrue を指定すると 水平方向に反転します。
isFlipYtrue を指定すると 垂直方向に反転します。
戻り値
false失敗。 デバイスコンテキストなどが指定されていません。
true成功。

TnbGdiPlus.h437 行目に定義があります。

◆ DrawLine()

bool DrawLine ( const CPos s,
const CPos e 
)

[描画] ライン描画.

ペンは SetPen() で指定します。

引数
s始点
e終点
戻り値
false失敗。 デバイスコンテキストなどが指定されていません。
true成功。

TnbGdiPlus.h615 行目に定義があります。

◆ DrawRotateImage() [1/2]

bool DrawRotateImage ( const CGdiPlus::CPos po,
HBITMAP  bmp,
const CGdiPlus::CPos hotSpot,
double  angle,
double  mag = 1.0 
) const

[描画] ビットマップ回転描画.

引数
po重心表示位置。
bmpビットマップ。
hotSpotビットマップの重心。ビットマップの相対座標を指定します。
angle角度 ( 0〜359°)
mag倍率。省略すると 1 になります。
戻り値
false失敗。 デバイスコンテキストなどが指定されていません。
true成功。

TnbGdiPlus.h512 行目に定義があります。

◆ DrawRotateImage() [2/2]

bool DrawRotateImage ( const CGdiPlus::CPos po,
HBITMAP  bmp,
double  angle,
double  mag = 1.0 
) const

[描画] ビットマップ回転描画.

覚え書き
重心は画像の中心になります。
引数
po重心表示位置。
bmpビットマップ。
angle角度 ( 0〜359°)
mag倍率。省略すると 1 になります。
戻り値
false失敗。 デバイスコンテキストなどが指定されていません。
true成功。

TnbGdiPlus.h544 行目に定義があります。

◆ DrawSkewImage()

bool DrawSkewImage ( const CGdiPlus::CPos po,
HBITMAP  bmp,
const CGdiPlus::CPos diff,
double  mag = 1.0 
) const

[描画] ビットマップ傾斜描画.

引数
po表示位置
bmpビットマップ
diffX方向、Y方向のずれ
mag倍率。省略すると 1 になります。
戻り値
false失敗。 デバイスコンテキストなどが指定されていません。
true成功。

TnbGdiPlus.h563 行目に定義があります。

◆ DrawText() [1/2]

bool DrawText ( const CGdiPlus::CPos po,
LPCWSTR  lpsz 
) const

[描画] テキスト描画.

覚え書き
SetFont() , SetBrush() がされている必要があります。 また、 SetTextRenderingHint() , SetTextStyle() で表示設定が可能です。
引数
po表示位置
lpsz表示文字列
戻り値
false失敗。 デバイスコンテキストなどが指定されていません。
true成功。

TnbGdiPlus.h344 行目に定義があります。

◆ DrawText() [2/2]

bool DrawText ( const RECT &  rc,
LPCWSTR  lpsz 
) const

[描画] テキスト描画.

覚え書き
SetFont() , SetBrush() がされている必要があります。 また、 SetTextRenderingHint() , SetTextStyle() で表示設定が可能です。
引数
rc表示位置
lpsz表示文字列
戻り値
false失敗。 デバイスコンテキストなどが指定されていません。
true成功。

TnbGdiPlus.h327 行目に定義があります。

◆ LoadBitmap()

static HBITMAP LoadBitmap ( LPCWSTR  lpsz)
static

[作成] 画像ファイル読込み.

BMP, JPEG などのファイルを読み込み、 HBITMAP を作成します。

引数
lpszファイル名。
戻り値
NULL以外成功。
NULL失敗。

TnbGdiPlus.h687 行目に定義があります。

◆ LoadThumbnail()

static HBITMAP LoadThumbnail ( LPCWSTR  lpsz)
static

[作成] サムネイル画像ファイル読込み.

画像ファイル内のサムネイルを読み込み、 HBITMAP を作成します。

引数
lpszファイル名。
戻り値
NULL以外成功。
NULL失敗。サムネイルがない場合も失敗になります。

TnbGdiPlus.h711 行目に定義があります。

◆ operator=()

CGdiPlus & operator= ( const CGdiPlus other)

コピーオペレータ.

引数
otherコピー元
戻り値
自分の参照

TnbGdiPlus.h139 行目に定義があります。

◆ ReferImageAttribute()

CPointerHandleT< Gdiplus::ImageAttributes > ReferImageAttribute ( void  )

[設定] イメージ描画属性参照.

覚え書き
低レベルメソッドです。本インスタンスで管理するイメージ属性の参照を返すことで、 自由に属性の設定をすることが可能です(GDI+の知識が必要です)。
戻り値
Gdiplus::ImageAttribute のポインタ.

TnbGdiPlus.h418 行目に定義があります。

◆ SaveBitmap() [1/2]

static bool SaveBitmap ( LPCWSTR  lpsz,
Gdiplus::Bitmap &  bmp,
EBitmapFormat  fmt = BMP,
LONG  jpegQuality = 80 
)
static

[作成] 画像ファイル作成.

ビットマップを BMP, JPEG などのファイルにします。

引数
lpszファイル名。
bmpビットマップ。
fmtフォーマット。省略するとBMPです。
jpegQualityJPEGのクオリティ(0〜100)。省略すると80。
戻り値
true成功。
false失敗。

TnbGdiPlus.h776 行目に定義があります。

◆ SaveBitmap() [2/2]

static bool SaveBitmap ( LPCWSTR  lpsz,
HBITMAP  hBmp,
EBitmapFormat  fmt = BMP,
LONG  jpegQuality = 80 
)
static

[作成] 画像ファイル作成.

ビットマップを BMP, JPEG などのファイルにします。

引数
lpszファイル名。
hBmpビットマップ。
fmtフォーマット。省略するとBMPです。
jpegQualityJPEGのクオリティ(0〜100)。省略すると80。
戻り値
true成功。
false失敗。

TnbGdiPlus.h825 行目に定義があります。

◆ SetBrush() [1/2]

bool SetBrush ( COLORREF  color)

[設定] ブラシ設定.

本クラスで扱うブラシを指定します。

覚え書き
指定色単一のブラシが用意されます。
引数
colorブラシの色
戻り値
true成功。
false失敗。

TnbGdiPlus.h223 行目に定義があります。

◆ SetBrush() [2/2]

bool SetBrush ( HBITMAP  bmp)

[設定] ブラシ設定.

本クラスで扱うブラシを指定します。

覚え書き
指定のビットマップ柄のブラシが用意されます。
引数
bmpブラシの模様にするビットマップ。
戻り値
true成功。
false失敗。

TnbGdiPlus.h239 行目に定義があります。

◆ SetDC()

bool SetDC ( HDC  hdc)

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

本クラスで扱うデバイスコンテキストを指定します。

引数
hdcデバイスコンテキスト
戻り値
true成功。
false失敗。

TnbGdiPlus.h164 行目に定義があります。

◆ SetFont() [1/2]

bool SetFont ( HFONT  hFont)

[設定] フォント設定.

本クラスで扱うフォントを指定します。

引数
hFontフォントハンドル
戻り値
true成功。
false失敗。

TnbGdiPlus.h180 行目に定義があります。

◆ SetFont() [2/2]

bool SetFont ( LPCWSTR  lpszFontName,
float  size,
int  style = REGULAR 
)

[設定] フォント設定.

本クラスで扱うフォントを指定します。

引数
lpszFontNameフォント名
sizeサイズ
styleフォントスタイル。 EFontStyle から複数「or」で指定できます。
戻り値
true成功。
false失敗。

TnbGdiPlus.h208 行目に定義があります。

◆ SetImageInterpolationMode()

bool SetImageInterpolationMode ( EInterpolationMode  mode)

[設定] イメージ描画アルゴリズム設定.

イメージを拡大または回転するときのアルゴリズムを指定します。

引数
modeモード値。
戻り値
false失敗。 デバイスコンテキストなどが指定されていません。
true成功。

TnbGdiPlus.h375 行目に定義があります。

◆ SetImageTransparentColor()

void SetImageTransparentColor ( COLORREF  colorLow,
COLORREF  colorHigh 
)

[設定] イメージ描画透過色指定.

イメージ描画時に透過処理を行うことが出来ます。

覚え書き
色の 3 つの要素 (赤、緑、青) が、それぞれ対応する要素の上位と下位のカラー キーの間にある場合、その色は透明になります。
参照
ClearImageAttribute
引数
colorLow下位のカラー キー値。
colorHigh上位のカラー キー値。

TnbGdiPlus.h399 行目に定義があります。

◆ SetPen()

bool SetPen ( COLORREF  color,
float  width 
)

[設定] ペン設定.

本クラスで扱うペンを指定します。

覚え書き
指定色単一のペンが用意されます。
引数
colorペンの色
width
戻り値
true成功。
false失敗。

TnbGdiPlus.h265 行目に定義があります。

◆ SetSmoothingMode()

bool SetSmoothingMode ( ESmoothingMode  mode)

[設定] スムージングモード設定.

覚え書き
直線、曲線、および塗りつぶし領域の角に対してスムージング (アンチエイリアスとも呼ばれます) を使用するかどうかを指定します。
引数
modeモード
戻り値
false失敗。 デバイスコンテキストなどが指定されていません。
true成功。

TnbGdiPlus.h600 行目に定義があります。

◆ SetTextRenderingHint()

bool SetTextRenderingHint ( ETextRenderingHint  hint,
bool  boIsGridFit = false 
)

[設定] テキストレンダリングヒント設定.

本クラスで扱うテキストレンダリングヒントを指定します。

引数
hintヒント値
boIsGridFitヒント値が、 BITPERPIXEL 、 ANTIALIAS の場合、 false を指定すると、Gridfitしません。
戻り値
false失敗。 デバイスコンテキストが指定されていません。
true成功。

TnbGdiPlus.h293 行目に定義があります。

◆ SetTextStyle()

bool SetTextStyle ( DWORD  drawTextStyle)

[設定] テキストスタイル設定.

DrawText する際使用するスタイルを指定します。

引数
drawTextStyleDT_ で始まるシンボルの組み合わせを指定できます。
戻り値
true成功。
false失敗。

TnbGdiPlus.h312 行目に定義があります。

◆ Startup()

static bool Startup ( void  )
static

[設定] GDI+ 初期化.

覚え書き
プログラムで一度だけコールする必要があります。 自動的にコールされますが、時間がかかるため、 プログラムの最初で一度コールしておいたほうがよいかもしれません。
戻り値
true成功。
false失敗。

TnbGdiPlus.h648 行目に定義があります。