ID2D1BitmapRenderTarget::GetBitmap 메서드(d2d1.h)
이 렌더링 대상의 비트맵을 검색합니다. 반환된 비트맵은 그리기 작업에 사용할 수 있습니다.
구문
HRESULT GetBitmap(
[out] ID2D1Bitmap **bitmap
);
매개 변수
[out] bitmap
형식: ID2D1Bitmap**
이 메서드가 반환되면 이 렌더링 대상의 비트맵에 대한 포인터의 주소가 포함됩니다. 이 비트맵은 그리기 작업에 사용할 수 있습니다.
반환 값
형식: HRESULT
메서드가 성공하면 S_OK를 반환하고, 그렇지 않으면 HRESULT 오류 코드를 반환합니다.
설명
GetBitmap에서 가져온 ID2D1Bitmap에 대한 DPI는 렌더링 대상을 만들 때 ID2D1BitmapRenderTarget의 DPI가 됩니다. SetDpi를 호출하여 ID2D1BitmapRenderTarget의 DPI를 변경해도 GetBitmap 전에 SetDpi가 호출되더라도 비트맵의 DPI에는 영향을 주지 않습니다. SetDpi를 사용하여 ID2D1BitmapRenderTarget의 DPI를 변경하면 콘텐츠가 비트맵으로 렌더링되는 방식에 영향을 줍니다. GetBitmap에서 검색한 비트맵의 DPI에는 영향을 주지 않습니다.
예제
다음 예제에서는 CreateCompatibleRenderTarget 메서드를 사용하여 ID2D1BitmapRenderTarget 을 만들고 이를 사용하여 그리드 패턴을 그립니다. 그리드 패턴은 ID2D1BitmapBrush의 원본으로 사용됩니다.
HRESULT DemoApp::CreateGridPatternBrush(
ID2D1RenderTarget *pRenderTarget,
ID2D1BitmapBrush **ppBitmapBrush
)
{
// Create a compatible render target.
ID2D1BitmapRenderTarget *pCompatibleRenderTarget = NULL;
HRESULT hr = pRenderTarget->CreateCompatibleRenderTarget(
D2D1::SizeF(10.0f, 10.0f),
&pCompatibleRenderTarget
);
if (SUCCEEDED(hr))
{
// Draw a pattern.
ID2D1SolidColorBrush *pGridBrush = NULL;
hr = pCompatibleRenderTarget->CreateSolidColorBrush(
D2D1::ColorF(D2D1::ColorF(0.93f, 0.94f, 0.96f, 1.0f)),
&pGridBrush
);
if (SUCCEEDED(hr))
{
pCompatibleRenderTarget->BeginDraw();
pCompatibleRenderTarget->FillRectangle(D2D1::RectF(0.0f, 0.0f, 10.0f, 1.0f), pGridBrush);
pCompatibleRenderTarget->FillRectangle(D2D1::RectF(0.0f, 0.1f, 1.0f, 10.0f), pGridBrush);
pCompatibleRenderTarget->EndDraw();
// Retrieve the bitmap from the render target.
ID2D1Bitmap *pGridBitmap = NULL;
hr = pCompatibleRenderTarget->GetBitmap(&pGridBitmap);
if (SUCCEEDED(hr))
{
// Choose the tiling mode for the bitmap brush.
D2D1_BITMAP_BRUSH_PROPERTIES brushProperties =
D2D1::BitmapBrushProperties(D2D1_EXTEND_MODE_WRAP, D2D1_EXTEND_MODE_WRAP);
// Create the bitmap brush.
hr = m_pRenderTarget->CreateBitmapBrush(pGridBitmap, brushProperties, ppBitmapBrush);
pGridBitmap->Release();
}
pGridBrush->Release();
}
pCompatibleRenderTarget->Release();
}
return hr;
}
다음 코드 예제에서는 브러시를 사용하여 패턴을 그립니다.
// Paint a grid background.
m_pRenderTarget->FillRectangle(
D2D1::RectF(0.0f, 0.0f, renderTargetSize.width, renderTargetSize.height),
m_pGridPatternBitmapBrush
);
이 예제에서는 코드를 생략합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7, Windows Vista SP2 및 Windows Vista용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | d2d1.h |
라이브러리 | D2d1.lib |
DLL | D2d1.dll |