GDI+編・・・。
GDI+はWindowsXPから登場したGDIの後継サブシステム・・・。
WindowsAPIのGDIで弱かったグラフィック処理が簡単に実現可能になった・・・。
C++ライブラリとして提供されているが、.NETでも使えるらしい・・・。
GraphicsクラスのDrawImageで、libjpeg編で作ったtest.jpgをウィンドウに表示してみる・・・。
プロジェクトを作成して、ソースを追加したら、
追加の依存ファイルにgdiplus.libを追加・・・。
test.jpgを用意・・・。
こんな感じの・・・。
gdiplus.hのインクルード・・・。
gdiSI、gdiTokenは初期化に必要なものだが、とりあえずはこういうものということで・・・。
Gdiplus::GdiplusStartupに渡して初期化・・・。
Gdiplus::GdiplusShutdownで終了処理・・・。
staticなGdiplus::ImageオブジェクトポインタpImageを用意して、WM_CREATE時にnew Gdiplus::Imageでオブジェクトを作成し、pImageに渡す・・・。
コンストラクタ引数に"test.jpg"を渡すことで、生成時に"test.jpg"を読み込んでいる・・・。
WM_PAINTでGdiplus::Graphicsオブジェクトのgraphicsを作成・・・。
この時にgraphicsのコンストラクタ引数にhDCを渡している・・・。
これで以降の描画処理をgraphicsによって行うことができる・・・。
あとは、graphics.DrawImageでpImageを描画するだけ・・・。
Graphics.DrawImage(Image*, INT, INT) method (Windows)
第2、第3引数は描画位置で左上隅の(0, 0)にしている・・・。
WM_DESTROY時にpImageを破棄・・・。
これで、
こんな簡単に"test.jpg"が表示できた・・・。
Sample/gdiplus/Graphics/DrawImage/src/Graphics at master · bg1bgst333/Sample · GitHub