본문 바로가기
게임 공부/Windows API

[WinAPI] GDI+를 이용하여 이미지 파일(png, jpg 등) 출력하기

by woohyeon 2020. 9. 19.
반응형

우선 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);
    }

 




댓글