게임 공부/Windows API
[WinAPI] GDI+를 이용하여 이미지 파일(png, jpg 등) 출력하기
woohyeon
2020. 9. 19. 13:29
반응형
우선 GDI+를 사용하기 위해 다음과 같이 <gdiplus.h>를 인클루드하고 Gdiplus.lib 라이브러리를 연결해줍니다. 그리고 편의를 위해 Gdiplus 네임스페이스를 선언해줍니다.
#include <gdiplus.h>
#pragma comment(lib, "Gdiplus.lib")
using namespace Gdiplus;
/* GDI 관련 데이터 */
ULONG_PTR gdiplusToken;
GdiplusStartupInput gdiplusStartupInput;
INT WINAPI wWinMain(HINSTANCE hInst, HINSTNACE, PWSTR, INT)
{
...
// GDI+ 관련된 어떤 함수라도 사용 전에 해당 함수를 호출해야 합니다.
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
// image.png 파일을 이용하여 Image 객체를 생성합니다.
HDC hdc = GetDC(hWnd);
Image* image = Image::FromFile(L"image.png");
::Graphics g(hdc);
// (x, y)에 width X height 크기의 이미지를 그립니다.
g.DrawImage(image, x, y, width, height);
// 데이터 메모리 해제
delete image;
ReleaseDC(hWnd, hdc);
}