// include
#include <gdiplus.h>
#pragma comment(lib, “gdiplus.lib”)
using namespace Gdiplus;
//con, init
BGDIPlus::BGDIPlus(void)
: m_gpToken(0), m_vaild(false)
{
GdiplusStartupInput gdiplusStartupInput;
m_vaild = (GdiplusStartup(&m_gpToken, &gdiplusStartupInput, NULL) == Ok);
}
//dctor
BGDIPlus::~BGDIPlus(void)
{
GdiplusShutdown(m_gpToken);
}
// 파일 로드
:
Graphics graphics(pDC->m_hDC);
:
Image image(L”Target.png”); // 해당 디렉토리의 Target.png 화일을 불러옴.
graphics.DrawImage(&image, 200, 200, image.GetWidth(), image.GetHeight());
:
//리소스 로드
:
Graphics graphics(hDC);
:
HRSRC hResource = FindResource(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDR_PNG1), TEXT(“PNG”));
if(!hResource) return;
DWORD imageSize = SizeofResource(AfxGetApp()->m_hInstance, hResource);
HGLOBAL hGlobal = LoadResource(AfxGetApp()->m_hInstance, hResource);
LPVOID pData = LockResource(hGlobal);
HGLOBAL hBuffer = GlobalAlloc(GMEM_MOVEABLE, imageSize);
LPVOID pBuffer = GlobalLock(hBuffer);
CopyMemory(pBuffer,pData,imageSize);
GlobalUnlock(hBuffer);
IStream *pStream;
HRESULT hr = CreateStreamOnHGlobal(hBuffer, TRUE, &pStream);
Image imagePNG(pStream);
pStream->Release();
if (imagePNG.GetLastStatus() != Ok) return;
graphics.DrawImage(&imagePNG, 500, 500, imagePNG.GetWidth(), imagePNG.GetHeight());
답글 남기기