Метод ID2D1DeviceContext::CreateImageBrush(ID2D1Image*,constD2D1_IMAGE_BRUSH_PROPERTIES&,ID2D1ImageBrush**) (d2d1_1.h)

Создает кисть изображения. Входное изображение может быть любым типом изображения, включая растровое изображение, эффект или список команд.

Синтаксис

HRESULT CreateImageBrush(
  [in]      ID2D1Image                          *image,
  [in, ref] const D2D1_IMAGE_BRUSH_PROPERTIES & imageBrushProperties,
  [out]     ID2D1ImageBrush                     **imageBrush
);

Параметры

[in] image

Тип: ID2D1Image*

Изображение, используемое в качестве источника для кисти изображения.

[in, ref] imageBrushProperties

Тип: const D2D1_IMAGE_BRUSH_PROPERTIES

Свойства, относящиеся к кисти изображения.

[out] imageBrush

Тип: ID2D1ImageBrush**

При возврате этого метода содержит адрес указателя на входные прямоугольники.

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

Тип: HRESULT

Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

HRESULT Описание:
S_OK Без ошибок.
E_OUTOFMEMORY Direct2D не удалось выделить достаточно памяти для завершения вызова.
E_INVALIDARG В метод передано недопустимое значение.

Комментарии

Кисть изображения может использоваться для заполнения произвольной геометрии, маски непрозрачности или текста.

В этом примере показано рисование прямоугольника с помощью кисти изображения.

HRESULT
CreatePatternBrush(
     __in ID2D1DeviceContext *pDeviceContext,
     __deref_out ID2D1ImageBrush **ppImageBrush
     )
{
    HRESULT hr = S_OK;
    ID2D1Image *pOldTarget = NULL;
    pDeviceContext->GetTarget(&pOldTarget);

    ID2D1CommandList *pCommandList = NULL;
    hr = pDeviceContext->CreateCommandList(&pCommandList);
     
    if (SUCCEEDED(hr))
    {   
        pDeviceContext->SetTarget(pCommandList);
        hr = RenderPatternToCommandList(pDeviceContext);
    }

    pDeviceContext->SetTarget(pOldTarget);

    ID2D1ImageBrush *pImageBrush = NULL;

    if (SUCCEEDED(hr))
    {        
         hr = pDeviceContext->CreateImageBrush(
            pCommandList,
            D2D1::ImageBrushProperties(
                D2D1::RectF(198, 298, 370, 470),
                D2D1_EXTEND_MODE_WRAP,
                D2D1_EXTEND_MODE_WRAP,
                D2D1_INTERPOLATION_MODE_LINEAR
                ),
            &pImageBrush
            );
    }
    
    // Fill a rectangle with the image brush.
    if (SUCCEEDED(hr))
    {
        pDeviceContext->FillRectangle(
            D2D1::RectF(0, 0, 100, 100), pImageBrush);
    }

    SafeRelease(&pImageBrush);
    SafeRelease(&pCommandList);
    SafeRelease(&pOldTarget);
    return hr;
}

Требования

Требование Значение
Минимальная версия клиента Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 и обновление платформы для Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header d2d1_1.h
DLL D2d1.dll

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

D2D1_BRUSH_PROPERTIES

D2D1_IMAGE_BRUSH_PROPERTIES

ID2D1DeviceContext

ID2D1DeviceContext::CreateCommandList

ID2D1DeviceContext::CreateEffect

ID2D1RenderTarget::D rawGeometry

ID2D1RenderTarget::FillGeometry