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
IXpsRasterizationFactory ::CreateRasterizer