Freigeben über


ID2D1DeviceContext::CreateImageBrush(ID2D1Image*,constD2D1_IMAGE_BRUSH_PROPERTIES&,ID2D1ImageBrush**)-Methode (d2d1_1.h)

Erstellt einen Bildpinsel. Das Eingabebild kann ein beliebiger Bildtyp sein, einschließlich einer Bitmap, eines Effekts oder einer Befehlsliste.

Syntax

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

Parameter

[in] image

Typ: ID2D1Image*

Das Bild, das als Quelle für den Bildpinsel verwendet werden soll.

[in, ref] imageBrushProperties

Typ: const D2D1_IMAGE_BRUSH_PROPERTIES

Die spezifischen Eigenschaften für einen Bildpinsel.

[out] imageBrush

Typ: ID2D1ImageBrush**

Wenn diese Methode zurückgibt, enthält die Adresse eines Zeigers auf die Eingaberechtecke.

Rückgabewert

Typ: HRESULT

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

HRESULT BESCHREIBUNG
S_OK Kein Fehler ist aufgetreten.
E_OUTOFMEMORY Direct2D konnte nicht genügend Arbeitsspeicher zuweisen, um den Anruf abzuschließen.
E_INVALIDARG Ein ungültiger Wert wurde an die -Methode übergeben.

Hinweise

Der Bildpinsel kann verwendet werden, um eine beliebige Geometrie, eine Deckkraftmaske oder Text auszufüllen.

In diesem Beispiel wird das Zeichnen eines Rechtecks mit einem Bildpinsel veranschaulicht.

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;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 und Plattformupdate für Windows Server 2008 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d2d1_1.h
DLL D2d1.dll

Weitere Informationen

D2D1_BRUSH_PROPERTIES

D2D1_IMAGE_BRUSH_PROPERTIES

ID2D1DeviceContext

ID2D1DeviceContext::CreateCommandList

ID2D1DeviceContext::CreateEffect

ID2D1RenderTarget::D rawGeometry

ID2D1RenderTarget::FillGeometry