透過が設定してあるPNGの描画 | かに太郎、ただいま開発中

かに太郎、ただいま開発中

Windowsアプリ作ってます。

C++とMFCから、C#とXAMLにのんびり移行中。

忘れっぽいので、健忘録。

透過が設定してあるPNG画像を、MFCのCImageで描画してみた。


コードは、こんな感じ。


// 読込

CImage img;

img.Load(strFileName);


// 描画

img.Draw(pDC->m_hDC, left, top, w, h);


かに太郎、ただいま開発中-CImageで描画

元画像には、赤・青・緑の原色はつかってないのに、

ところどころ、赤・青・緑。

なんでやねんっ!


気を取り直して、GDI+で書き直し。


//初期化(アプリケーション初期化時に、1回だけでOK)

ULONG_PTR nToken;

Gdiplus::GdiplusStartupInput sGdiplusStartupInput;
Gdiplus::GdiplusStartup(&nToken,&sGdiplusStartupInput,NULL);

// 読込

Gdiplus::Bitmap* pImg = Gdiplus::Bitmap::FromFile(strFileName, TRUE);


// 描画

Gdiplus::Graphics cGraphics(pDC->m_hDC);
cGraphics.DrawImage(pImage,(Gdiplus::REAL)left, (Gdiplus::REAL)top
,(Gdiplus::REAL)w, (Gdiplus::REAL)h);


// 終了(アプリケーション終了時に、1回だけでOK)

Gdiplus::GdiplusShutdown(nToken);

かに太郎、ただいま開発中-gdiplusで描画

赤・青・緑の原色は出なくなった。

よっしゃーっ