ID2D1DeviceContext::CreateImageBrush (ID2D1Image*,constD2D1_IMAGE_BRUSH_PROPERTIES*,constD2D1_BRUSH_PROPERTIES*,ID2D1ImageBrush**) 方法 (d2d1_1.h)

创建图像画笔。 输入图像可以是任何类型的图像,包括位图、效果或命令列表。

语法

HRESULT CreateImageBrush(
  [in]           ID2D1Image                        *image,
  [in]           const D2D1_IMAGE_BRUSH_PROPERTIES *imageBrushProperties,
  [in, optional] const D2D1_BRUSH_PROPERTIES       *brushProperties,
  [out]          ID2D1ImageBrush                   **imageBrush
);

参数

[in] image

类型: ID2D1Image*

要用作图像画笔源的图像。

[in] imageBrushProperties

类型: const D2D1_IMAGE_BRUSH_PROPERTIES*

特定于图像画笔的属性。

[in, optional] brushProperties

类型: const D2D1_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 7 的Windows 8和平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 适用于 Windows Server 2008 R2 的Windows Server 2012和平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 d2d1_1.h
DLL D2d1.dll

另请参阅

D2D1_BRUSH_PROPERTIES

D2D1_IMAGE_BRUSH_PROPERTIES

ID2D1DeviceContext

ID2D1DeviceContext::CreateCommandList

ID2D1DeviceContext::CreateEffect

ID2D1RenderTarget::D rawGeometry

ID2D1RenderTarget::FillGeometry