Freigeben über


IXpsOMObjectFactory::CreateImageBrush-Methode (xpsobjectmodel.h)

Erstellt eine IXpsOMImageBrush-Schnittstelle .

Syntax

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

Parameter

[in] image

Die IXpsOMImageResource-Schnittstelle , die das Bild enthält, das als Quellbild des Pinsels verwendet werden soll.

[in] viewBox

Die XPS_RECT Struktur, die das Viewbox definiert, wobei es sich um den Bereich des Quellbilds handelt, der vom Pinsel verwendet wird.

[in] viewPort

Die XPS_RECT Struktur, die den Viewport definiert, wobei es sich um den Bereich handelt, der von der ersten Kachel im Ausgabebereich abgedeckt wird.

[out, retval] imageBrush

Ein Zeiger auf die neue IXpsOMImageBrush-Schnittstelle .

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliche Werte sind unter anderem die Werte in der folgenden Tabelle. Informationen zu XPS-Dokument-API-Rückgabewerten, die in dieser Tabelle nicht aufgeführt sind, finden Sie unter XPS-Dokumentfehler.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
E_POINTER
image, viewBox, viewPort oder imageBrush ist NULL.
E_INVALIDARG
viewBox oder viewPort enthält ein Rechteck oder einen Wert, der ungültig ist.

Hinweise

Das Ansichtsfeld des Pinsels gibt den Teil eines Quellbilds oder Visuals an, der als Kachelbild verwendet werden soll.

Die Koordinaten des Ansichtsfelds des Pinsels sind relativ zum Quellinhalt, sodass (0,0) die obere linke Ecke des Quellinhalts angibt. Bei Bildern werden die vom Viewbox des Pinsels angegebenen Dimensionen in den Einheiten 1/96" ausgedrückt. Die entsprechenden Pixelkoordinaten im Quellbild werden wie folgt berechnet:

In der folgenden Abbildung ist das Bild links ein Beispiel für ein Quellbild, und das ist ganz rechts der Pinsel, der nach dem Auswählen des Ansichtsfelds entsteht.

Abbildung eines Viewbox-Beispiels Wenn die Quellbildauflösung 96 x 96 Punkte pro Zoll beträgt und die Bilddimensionen 96 x 96 Pixel betragen, sind die Werte der Felder im Viewbox-Parameter wie folgt:

Die obigen Parameterwerte entsprechen dem Quellimage wie folgt:

SourceLeft = (96 × 48) / 96 = 48 Pixel von der linken Seite
SourceTop = (96 × 24) / 96 = 24 Pixel von oben
SourceWidth = (96 × 24) / 96 = 24 Pixel breit
SourceHeight = (96 × 48) / 96 = 48 Pixel hoch

Ein Bildpinsel ist ein Kachelpinsel, der ein Bild oder einen Teil davon übernimmt, das Bild transformiert, um eine Kachel zu erstellen, die resultierende Kachel im Viewport (die Zielgeometrie der Kachel im Ausgabebereich) platziert und den Ausgabebereich wie im Kachelmodus beschrieben ausfüllt.

Der Viewport ist der Bereich, der von der ersten Kachel im Ausgabebereich abgedeckt wird. Das Viewportbild wird im gesamten Ausgabebereich wiederholt, wie im Kachelmodus beschrieben.

Die nächste Abbildung zeigt, wie ein Bildpinsel verwendet wird, um einen Ausgabebereich zu füllen. Von links nach rechts wird das ursprüngliche Bild transformiert, um den Viewport zu füllen, dann im Viewportbereich des Ausgabebereichs platziert und dann gekachelt, um den Ausgabebereich zu füllen.

Abbildung, die zeigt, wie ein Kachelpinsel eine Geometrie ausfüllt Das folgende Codebeispiel veranschaulicht, wie diese Methode zum Erstellen einer neuen Schnittstelle verwendet wird.

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
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile xpsobjectmodel.h

Weitere Informationen

IXpsOMImageBrush

IXpsOMImageResource

IXpsOMObjectFactory

IXpsOMTileBrush

XML Paper Specification

XPS-Dokumentfehler

XPS_RECT