Condividi tramite


Metodo IXpsOMObjectFactory::CreateImageBrush (xpsobjectmodel.h)

Crea un'interfaccia IXpsOMImageBrush .

Sintassi

HRESULT CreateImageBrush(
  [in]          IXpsOMImageResource *image,
  [in]          const XPS_RECT      *viewBox,
  [in]          const XPS_RECT      *viewPort,
  [out, retval] IXpsOMImageBrush    **imageBrush
);

Parametri

[in] image

Interfaccia IXpsOMImageResource che contiene l'immagine da usare come immagine di origine del pennello.

[in] viewBox

Struttura XPS_RECT che definisce la casella di visualizzazione, ovvero l'area dell'immagine di origine usata dal pennello.

[in] viewPort

Struttura XPS_RECT che definisce il riquadro di visualizzazione, ovvero l'area coperta dal primo riquadro nell'area di output.

[out, retval] imageBrush

Puntatore alla nuova interfaccia IXpsOMImageBrush .

Valore restituito

Il metodo restituisce un HRESULT. I valori possibili includono, ma non sono limitati a quelli della tabella che segue. Per informazioni sui valori restituiti dall'API documento XPS non elencati in questa tabella, vedere Errori del documento XPS.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
E_POINTER
image, viewBox, viewPort o imageBrush è NULL.
E_INVALIDARG
viewBox o viewPort contiene un rettangolo o un valore non valido.

Commenti

La casella di visualizzazione del pennello specifica la parte di un'immagine di origine o un oggetto visivo da utilizzare come immagine del riquadro.

Le coordinate della casella di visualizzazione del pennello sono relative al contenuto di origine, in modo che (0,0) specifica l'angolo superiore sinistro del contenuto di origine. Per le immagini, le dimensioni specificate dalla casella di visualizzazione del pennello sono espresse nelle unità di 1/96". Le coordinate pixel corrispondenti nell'immagine di origine vengono calcolate come segue:

Nell'illustrazione seguente, l'immagine a sinistra è un esempio di un'immagine di origine e che a destra è il pennello che risultati dopo aver selezionato la casella di visualizzazione.

Figura che mostra un esempio di viewbox Se la risoluzione dell'immagine di origine è 96 per 96 punti per pollice e le dimensioni dell'immagine sono 96 per 96 pixel, i valori dei campi nel parametro della casella di visualizzazione sono i seguenti:

I valori dei parametri precedenti corrispondono all'immagine di origine come indicato di seguito:

SourceLeft = (96 × 48) / 96 = 48 pixel dal lato sinistro
SourceTop = (96 × 24) / 96 = 24 pixel dalla parte superiore
SourceWidth = (96 × 24) / 96 = 24 pixel wide
SourceHeight = (96 × 48) / 96 = 48 pixel elevati

Un pennello di immagine è un pennello di riquadro che accetta un'immagine o una parte di esso, trasforma l'immagine per creare un riquadro, inserisce il riquadro risultante nel riquadro (la geometria di destinazione del riquadro nell'area di output) e riempie l'area di output come descritto dalla modalità riquadro.

Il riquadro di visualizzazione è l'area coperta dal primo riquadro nell'area di output. L'immagine del riquadro viene ripetuta in tutta l'area di output, come descritto dalla modalità riquadro.

La figura successiva mostra come viene usato un pennello immagine per riempire un'area di output. Da sinistra a destra, l'immagine originale viene trasformata per riempire il riquadro di visualizzazione, quindi posizionato nell'area del riquadro di visualizzazione dell'area di output e quindi riquadri per riempire l'area di output.

Figura che mostra come un pennello di riquadro riempie una geometria L'esempio di codice seguente illustra come viene usato questo metodo per creare una nuova interfaccia.

IXpsOMImageBrush            *newInterface;
// The following values are defined outside of 
// this example.
//  IXpsOMImageResource     *image;
//  XPS_RECT                viewBox;
//  XPS_RECT                viewPort;

// Note the implicit requirement that CoInitializeEx 
//  has previously been called from this thread.

hr = CoCreateInstance(
    __uuidof(XpsOMObjectFactory),
    NULL,
    CLSCTX_INPROC_SERVER,
    _uuidof(IXpsOMObjectFactory),
    reinterpret_cast<LPVOID*>(&xpsFactory)
    );

if (SUCCEEDED(hr))
{
    hr = xpsFactory->CreateImageBrush (
        image,
        &viewBox,
        &viewPort,
        &newInterface);

    if (SUCCEEDED(hr))
    {
        // use newInterface

        newInterface->Release();
    }
    xpsFactory->Release();
}
else
{
    // evaluate HRESULT error returned in hr
}

Requisiti

Requisito Valore
Client minimo supportato Windows 7, Windows Vista con SP2 e Aggiornamento della piattaforma per Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2, Windows Server 2008 con SP2 e Platform Update per Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione xpsobjectmodel.h

Vedi anche

IXpsOMImageBrush

IXpsOMImageResource

IXpsOMObjectFactory

IXpsOMTileBrush

XML Paper Specification

Errori del documento XPS

XPS_RECT