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

El método RasterizeRect rasteriza una región rectangular alineada con el eje de una página fija XPS.

Sintaxis

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

Parámetros

[in] x

Coordenada x, en píxeles, en el borde izquierdo del mapa de bits de salida.

[in] y

Coordenada y, en píxeles, en el borde superior del mapa de bits de salida.

[in] width

Ancho, en píxeles, del mapa de bits de salida.

[in] height

Alto, en píxeles, del mapa de bits de salida.

[in, optional] notificationCallback

Puntero a la interfaz IXpsRasterizerNotificationCallback de un objeto de notificación implementado por el autor de la llamada. Este parámetro es opcional y puede ser NULL si el autor de la llamada no requiere devoluciones de llamada de notificación.

[out, optional] bitmap

Puntero a una ubicación en la que el método escribe un puntero a la interfaz IWICBitmap del objeto de mapa de bits recién creado. Si se produce un error en el método, escribe NULL en esta ubicación y devuelve un código de error.

Valor devuelto

RasterizeRect devuelve S_OK si la llamada se realizó correctamente. De lo contrario, el método devuelve un código de error. Entre los valores devueltos de error posibles se incluyen:

Código devuelto Descripción
E_POINTER El mapa de bits de parámetros es NULL.
E_INVALIDARG El ancho o alto del parámetro es menor o igual que 0.

Comentarios

Este método se admite en Windows 7 y versiones posteriores. No se admite en versiones del sistema operativo Windows anteriores a Windows 7.

Si se ejecuta correctamente, este método crea un objeto de mapa de bits del componente de creación de imágenes de Windows (WIC) y pasa al autor de la llamada una referencia contada a la interfaz IWICBitmap del objeto. Cuando el objeto ya no es necesario, el autor de la llamada es responsable de liberar el objeto llamando al método Release en la interfaz IWICBitmap del objeto.

El mapa de bits WIC creado por este método tiene un formato de píxel de 32 bits que contiene canales de color rojo, verde y azul de 8 bits y usa el espacio de colores RGB estándar (sRGB). Además, el formato contiene un componente alfa de 8 bits. Los componentes de color de cada valor de píxel se multiplican previamente por el componente alfa. El formato de píxel se especifica mediante el valor GUID GUID_WICPixelFormat32bppPBGRA, que se define en el archivo de encabezado Wincodec.h. Para obtener más información sobre este formato, vea Native Pixel Formats Overview.

El parámetro PPP del método IXpsRasterizationFactory::CreateRasterizer especifica la resolución, en puntos por pulgada, en la que se va a representar el mapa de bits. Como se describe en la especificación XPS, el ancho y el alto de una página fija en un documento XPS se especifican en unidades de 1/96 pulgadas. Para determinar las dimensiones (en píxeles) del mapa de bits necesario para representar toda la página fija, multiplique el ancho y el alto por PPP/96.

Para dar cabida a las impresoras que requieren que una página fija se rasterice como una serie de bandas horizontales o verticales, los parámetros x, y, ancho y alto , especifiquen una región rectangular de la página fija que se va a rasterizar. Los cuatro valores de parámetro se especifican en píxeles. Los parámetros x e y son las coordenadas de la esquina superior izquierda de la región rectangular; se especifican como desplazamientos de píxeles desde el origen de coordenadas (0, 0). El ancho y el alto de los parámetros son las dimensiones de la región rectangular.

Por ejemplo, si wXPS y hXPS son el ancho y alto de una página fija XPS en unidades de 1/96 pulgadas, RasterizeRect genera una representación de mapa de bits de la mitad inferior de la página fija si los parámetros x, y, width y height se establecen en los valores siguientes:

xyhancho de PPPconaltode PPPh PPP

Si el parámetro notificationCallback no es NULL, el método RasterizeRect toma una referencia contada a la interfaz IXpsRasterizerNotificationCallback del objeto de notificación. Para ello, llama al método AddRef en la interfaz antes de realizar llamadas al método IXpsRasterizerNotificationCallback::Continue . Antes de que Se devuelva RasterizeRect , libera el objeto de notificación llamando al método Release en la interfaz *IXpsRasterizerNotificationCallback .

Como se explica en la especificación XPS, el atributo BleedBox opcional puede especificar un cuadro de sangr que se extiende fuera de los límites de una página fija. Para acomodar cuadros de sangría, el rectángulo definido por los parámetros x, y, width y height , también puede extenderse más allá de los límites de la página fija. El método acepta cualquier valor, positivo o negativo, para x e y, y acepta cualquier valor positivo, distinto de cero para ancho y alto. El rectángulo especificado por estos parámetros define la región de recorte para la operación de rasterización. Si el rectángulo se extiende más allá de los límites de la página fija, la región de recorte también se extiende más allá de estos límites.

Si se produce un error en el método y el mapa de bits no es NULL, el método establece *bitmap = NULL.

Para obtener un ejemplo de código que llama al método RasterizeRect , vea el ejemplo XPSRasFilter en WDK. Este ejemplo se encuentra en la carpeta Src\Print\Xpsrasfilter de la instalación de WDK.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows 7 y versiones posteriores del sistema operativo Windows.
Plataforma de destino Escritorio
Encabezado xpsrassvc.h

Consulte también

IWICBitmap

IXpsRasterizationFactory::CreateRasterizer

IXpsRasterizer

IXpsRasterizer::SetMinimalLineWidth

IXpsRasterizerNotificationCallback