Méthode IXpsOMObjectFactory ::CreateImageBrush (xpsobjectmodel.h)
Crée une interface IXpsOMImageBrush .
Syntaxe
HRESULT CreateImageBrush(
[in] IXpsOMImageResource *image,
[in] const XPS_RECT *viewBox,
[in] const XPS_RECT *viewPort,
[out, retval] IXpsOMImageBrush **imageBrush
);
Paramètres
[in] image
Interface IXpsOMImageResource qui contient l’image à utiliser comme image source du pinceau.
[in] viewBox
Le XPS_RECT structure qui définit la zone d’affichage, qui est la zone de l’image source utilisée par le pinceau.
[in] viewPort
La XPS_RECT structure qui définit la fenêtre d’affichage, qui est la zone couverte par la première vignette de la zone de sortie.
[out, retval] imageBrush
Pointeur vers la nouvelle interface IXpsOMImageBrush .
Valeur retournée
Cette méthode retourne un code HRESULT. Les valeurs possibles incluent, sans s’y limiter, celles du tableau qui suit. Pour plus d’informations sur les valeurs de retour de l’API de document XPS qui ne sont pas répertoriées dans ce tableau, consultez Erreurs de document XPS.
Code de retour | Description |
---|---|
|
S_OK |
|
image, viewBox, viewPort ou imageBrush a la valeur NULL. |
|
viewBox ou viewPort contient un rectangle ou une valeur qui n’est pas valide. |
Remarques
La zone d’affichage du pinceau spécifie la partie d’une image ou d’un visuel source à utiliser comme image de vignette.
Les coordonnées de la zone d’affichage du pinceau sont relatives au contenu source, de sorte que (0,0) spécifie l’angle supérieur gauche du contenu source. Pour les images, les dimensions spécifiées par la zone d’affichage du pinceau sont exprimées en unités de 1/96 ». Les coordonnées de pixel correspondantes dans l’image source sont calculées comme suit :
Dans l’illustration qui suit, l’image de gauche est un exemple d’image source, et à l’extrême droite se trouve le pinceau qui se produit après avoir sélectionné la zone d’affichage.
Si la résolution de l’image source est de 96 par 96 points par pouce et que les dimensions de l’image sont de 96 par 96 pixels, les valeurs des champs dans le paramètre viewbox sont les suivantes :Les valeurs de paramètre précédentes correspondent à l’image source comme suit :
- SourceLeft = (96 × 48) / 96 = 48 pixels à partir du côté gauche
- SourceTop = (96 × 24) / 96 = 24 pixels du haut
- SourceWidth = (96 × 24) / 96 = 24 pixels de large
- SourceHeight = (96 × 48) / 96 = 48 pixels de haut
Un pinceau d’image est un pinceau de vignette qui prend une image, ou une partie de celle-ci, transforme l’image pour créer une vignette, place la vignette résultante dans la fenêtre d’affichage (la géométrie de destination de la vignette dans la zone de sortie) et remplit la zone de sortie comme décrit par le mode vignette.
La fenêtre d’affichage est la zone couverte par la première vignette de la zone de sortie. L’image de fenêtre d’affichage est répétée dans toute la zone de sortie, comme décrit par le mode vignette.
L’illustration suivante montre comment un pinceau d’image est utilisé pour remplir une zone de sortie. De gauche à droite, l’image d’origine est transformée pour remplir la fenêtre d’affichage, puis placée dans la zone de fenêtre d’affichage de la zone de sortie, puis en mosaïque pour remplir la zone de sortie.
L’exemple de code qui suit illustre la façon dont cette méthode est utilisée pour créer une interface.
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
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 R2, Windows Server 2008 avec SP2 et Platform Update pour Windows Server 2008 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | xpsobjectmodel.h |