*비트맵 객체 만들기
;ID2D1Bitmap로 표현. 장치 의존적 자원. 렌더타겟과 수명을 함께 함.
*비트맵 로드
;D2D에서는 WIC(Windows Imaging Component)를 사용하여 비트맵을 로드함.
*비트맵 그리기
;ID2D1RenderTarget의 DrawBitmap 함수를 호출.
void ID2D1RenderTarget::DrawBitmap(
ID2D1Bitmap* bitmap,
CONST D2D1_RECT_F* destinationRectangle = NULL,
FLOAT opacity = 1.0f,
D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR,
CONST D2D1_RECT_F* sourceRectangle = NULL
)
|
cs |
-파일로부터 비트맵 로드
// IWICImagingFactory 객체 생성.
IWICImagingFactory* pWICIFactory = NULL;
CoCreateInstance(CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pWICIFactory));
// IWICBitmapDecoder 생성.
IWICBitmapDecoder* pDecoder = NULL;
pWICIFactory->CreateDecoderFromFilename(
L"pattern.png", NULL, GENERIC_READ, WICDecodeMetadataCacheOnDemand, &pDecoder);
// 이미지 프레임의 0번째 이미지.
IWICBitmapFrameDecode* pSource = NULL;
pDecoder->GetFrame(0, &pSource);
// D2D 호환 포맷으로 변환.
IWICFormatConverter* pConverter = NULL;
pWICIFactory->CreateFormatConverter(&pConverter);
pConverter->Initialize(
pSource, GUID_WICPixelFormat32bppPBGRA, WICBitmapDitherTypeNone,
NULL, 0.0f, WICBitmapPaletteTypeCustom);
// ID2D1Bitamp 객체 생성.
ID2D1Bitmap* pBitmap = NULL;
gp_render_target->CreateBitmapFromWicBitmap(pConverter, NULL, &pBitmap);
// 렌더타겟에 비트맵 그리기.
D2D1_SIZE_F renderTargetSize = gp_render_target->GetSize();
gp_render_target->DrawBitmap(
pBitmap, D2D1::RectF(0.0f, 0.0f, pBitmap->GetSize().width, pBitmap->GetSize().height));
|
cs |
-리소스로부터 비트맵 로드
'::public > 윈도우즈 응용 프로그래밍' 카테고리의 다른 글
Direct2D - 텍스트 (0) | 2019.09.30 |
---|---|
Direct2D - 붓(Brush) (0) | 2019.09.27 |
Direct2D - 기하 (0) | 2019.09.26 |
Direct2D - 변환 (0) | 2019.09.26 |
Direct2D - 렌더타겟 (0) | 2019.09.26 |