Partager via


ID2D1DeviceContext ::CreateImageBrush(ID2D1Image*,constD2D1_IMAGE_BRUSH_PROPERTIES&,ID2D1ImageBrush**) , méthode (d2d1_1.h)

Crée un pinceau d’image. L’image d’entrée peut être n’importe quel type d’image, y compris une bitmap, un effet ou une liste de commandes.

Syntaxe

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

Paramètres

[in] image

Type : ID2D1Image*

Image à utiliser comme source pour le pinceau d’image.

[in, ref] imageBrushProperties

Type : const D2D1_IMAGE_BRUSH_PROPERTIES

Propriétés spécifiques à un pinceau d’image.

[out] imageBrush

Type : ID2D1ImageBrush**

Lorsque cette méthode retourne, contient l’adresse d’un pointeur vers les rectangles d’entrée.

Valeur retournée

Type : HRESULT

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

HRESULT Description
S_OK Aucune erreur ne s'est produite.
E_OUTOFMEMORY Direct2D n’a pas pu allouer suffisamment de mémoire pour terminer l’appel.
E_INVALIDARG Une valeur non valide a été passée à la méthode.

Remarques

Le pinceau d’image peut être utilisé pour remplir une géométrie arbitraire, un masque d’opacité ou du texte.

Cet exemple illustre le dessin d’un rectangle avec un pinceau d’image.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 et mise à jour de plateforme pour Windows Server 2008 R2 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête d2d1_1.h
DLL D2d1.dll

Voir aussi

D2D1_BRUSH_PROPERTIES

D2D1_IMAGE_BRUSH_PROPERTIES

ID2D1DeviceContext

ID2D1DeviceContext ::CreateCommandList

ID2D1DeviceContext ::CreateEffect

ID2D1RenderTarget ::D rawGeometry

ID2D1RenderTarget ::FillGeometry