Partager via


Méthode IXpsRasterizer ::RasterizeRect (xpsrassvc.h)

La méthode RasterizeRect rastérise une zone rectangulaire alignée sur l’axe d’une page fixe XPS.

Syntaxe

HRESULT RasterizeRect(
  [in]            INT                                x,
  [in]            INT                                y,
  [in]            INT                                width,
  [in]            INT                                height,
  [in, optional]  IXpsRasterizerNotificationCallback *notificationCallback,
  [out, optional] IWICBitmap                         **bitmap
);

Paramètres

[in] x

Coordonnée x, en pixels, sur le bord gauche de la bitmap de sortie.

[in] y

Coordonnée y, en pixels, sur le bord supérieur de la bitmap de sortie.

[in] width

Largeur, en pixels, de la bitmap de sortie.

[in] height

Hauteur, en pixels, de la bitmap de sortie.

[in, optional] notificationCallback

Pointeur vers l’interface IXpsRasterizerNotificationCallback d’un objet de notification implémenté par l’appelant. Ce paramètre est facultatif et peut être NULL si l’appelant ne nécessite pas de rappels de notification.

[out, optional] bitmap

Pointeur vers un emplacement dans lequel la méthode écrit un pointeur vers l’interface IWICBitmap de l’objet bitmap nouvellement créé. Si la méthode échoue, elle écrit NULL à cet emplacement et retourne un code d’erreur.

Valeur retournée

RasterizeRect retourne S_OK si l’appel a réussi. Sinon, la méthode retourne un code d'erreur. Les valeurs de retour d’erreur possibles sont les suivantes :

Code de retour Description
E_POINTER Le paramètre bitmap a la valeur NULL.
E_INVALIDARG La largeur ou la hauteur du paramètre est inférieure ou égale à 0.

Remarques

Cette méthode est prise en charge dans Windows 7 et versions ultérieures. Elle n’est pas prise en charge dans les versions du système d’exploitation Windows antérieures à Windows 7.

Si elle réussit, cette méthode crée un objet bitmap WIC (Windows Imaging Component) et transmet à l’appelant une référence comptabilisée à l’interface IWICBitmap de l’objet. Lorsque l’objet n’est plus nécessaire, l’appelant est chargé de libérer l’objet en appelant la méthode Release sur l’interface IWICBitmap de l’objet.

La bitmap WIC créée par cette méthode a un format de pixels 32 bits qui contient des canaux rouges, verts et bleus 8 bits et utilise l’espace de couleur RVB (sRGB) standard. En outre, le format contient un composant alpha 8 bits. Les composants de couleur dans chaque valeur de pixel sont prémultipliés par le composant alpha. Le format de pixel est spécifié par la valeur GUID GUID_WICPixelFormat32bppPBGRA, qui est définie dans le fichier d’en-tête Wincodec.h. Pour plus d’informations sur ce format, consultez Vue d’ensemble des formats de pixels natifs.

Le paramètre DPI de la méthode IXpsRasterizationFactory ::CreateRasterizer spécifie la résolution, en points par pouce, à laquelle la bitmap doit être rendue. Comme décrit dans la spécification XPS, la largeur et la hauteur d’une page fixe dans un document XPS sont spécifiées en unités de 1/96 pouce. Pour déterminer les dimensions (en pixels) de la bitmap requise pour représenter la page fixe entière, multipliez la largeur et la hauteur par PPP/96.

Pour prendre en charge les imprimantes qui nécessitent qu’une page fixe soit rastérisée sous la forme d’une série de bandes horizontales ou verticales, les paramètres x, y, largeur et hauteur spécifient une zone rectangulaire de la page fixe qui doit être rastérisée. Les quatre valeurs de paramètre sont spécifiées en pixels. Les paramètres x et y sont les coordonnées du coin supérieur gauche de la région rectangulaire ; ils sont spécifiés sous forme de déplacement de pixels par rapports à l’origine de la coordonnée (0, 0). Les paramètres largeur et hauteur sont les dimensions de la zone rectangulaire.

Par exemple, si wXPS et hXPS sont la largeur et la hauteur d’une page fixe XPS en unités de 1/96 pouces, RasterizeRect génère une représentation bitmap de la moitié inférieure de la page fixe si les paramètres x, y, width et height sont définis sur les valeurs suivantes :

xyhlargeur PPPwDPIheighthDPI

Si le paramètre notificationCallback n’est pas NULL, la méthode RasterizeRect prend une référence comptabilisée à l’interface IXpsRasterizerNotificationCallback de l’objet de notification. Pour ce faire, il appelle la méthode AddRef sur l’interface avant d’effectuer des appels à la méthode IXpsRasterizerNotificationCallback ::Continue . Avant que RasterizeRect ne retourne, il libère l’objet de notification en appelant la méthode Release sur l’interface *IXpsRasterizerNotificationCallback .

Comme expliqué dans la spécification XPS, l’attribut BleedBox facultatif peut spécifier une zone de fond qui s’étend en dehors des limites d’une page fixe. Pour prendre en charge les zones de fond, le rectangle défini par les paramètres x, y, width et height peut également s’étendre au-delà des limites de la page fixe. La méthode accepte toutes les valeurs, positives ou négatives, pour x et y, et accepte toutes les valeurs positives et non nulles pour la largeur et la hauteur. Le rectangle spécifié par ces paramètres définit la zone de découpage pour l’opération de rastérisation. Si le rectangle s’étend au-delà des limites de la page fixe, la zone de découpage s’étend également au-delà de ces limites.

Si la méthode échoue et que l’image bitmap n’est pas NULL, la méthode définit *bitmap = NULL.

Pour obtenir un exemple de code qui appelle la méthode RasterizeRect , consultez l’exemple XPSRasFilter dans wdk. Cet exemple se trouve dans le dossier Src\Print\Xpsrasfilter de votre installation WDK.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 7 et versions ultérieures du système d’exploitation Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête xpsrassvc.h

Voir aussi

IWICBitmap

IXpsRasterizationFactory ::CreateRasterizer

IXpsRasterizer

IXpsRasterizer ::SetMinimalLineWidth

IXpsRasterizerNotificationCallback