Поделиться через


Метод ID2D1BitmapRenderTarget::GetBitmap (d2d1.h)

Извлекает растровое изображение для этого целевого объекта отрисовки. Возвращаемое растровое изображение можно использовать для операций рисования.

Синтаксис

HRESULT GetBitmap(
  [out] ID2D1Bitmap **bitmap
);

Параметры

[out] bitmap

Тип: ID2D1Bitmap**

При возврате этого метода содержит адрес указателя на растровое изображение для этого целевого объекта отрисовки. Это растровое изображение можно использовать для операций рисования.

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

DPI для ID2D1Bitmap, полученного из GetBitmap , будет иметь значение DPI id2D1BitmapRenderTarget при создании целевого объекта отрисовки. Изменение DPI id2D1BitmapRenderTarget путем вызова SetDpi не влияет на DPI растрового изображения, даже если SetDpi вызывается перед GetBitmap. Использование SetDpi для изменения DPI ID2D1BitmapRenderTarget влияет на то, как содержимое отображается в растровом рисунке: это просто не влияет на разрешение растрового рисунка, полученного GetBitmap.

Примеры

В следующем примере метод 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 с пакетом обновления 2 (SP2) и обновлением платформы для Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header d2d1.h
Библиотека D2d1.lib
DLL D2d1.dll

См. также раздел

ID2D1BitmapRenderTarget