Método IXpsOMObjectFactory::CreateImageBrush (xpsobjectmodel.h)
Crea una interfaz IXpsOMImageBrush .
Sintaxis
HRESULT CreateImageBrush(
[in] IXpsOMImageResource *image,
[in] const XPS_RECT *viewBox,
[in] const XPS_RECT *viewPort,
[out, retval] IXpsOMImageBrush **imageBrush
);
Parámetros
[in] image
Interfaz IXpsOMImageResource que contiene la imagen que se va a usar como imagen de origen del pincel.
[in] viewBox
Estructura XPS_RECT que define el cuadro de vista, que es el área de la imagen de origen que usa el pincel.
[in] viewPort
Estructura XPS_RECT que define la ventanilla, que es el área cubierta por el primer icono del área de salida.
[out, retval] imageBrush
Puntero a la nueva interfaz IXpsOMImageBrush .
Valor devuelto
El método devuelve un valor HRESULT. Entre los valores posibles se incluyen, entre otros, los de la tabla siguiente. Para obtener información sobre los valores devueltos de la API de documentos XPS que no aparecen en esta tabla, vea Errores del documento XPS.
Código devuelto | Descripción |
---|---|
|
El método se ha llevado a cabo de forma correcta. |
|
image, viewBox, viewPort o imageBrush es NULL. |
|
viewBox o viewPort contiene un rectángulo o un valor que no es válido. |
Comentarios
El cuadro de vista del pincel especifica la parte de una imagen de origen o un objeto visual que se va a usar como imagen de mosaico.
Las coordenadas del cuadro de vista del pincel son relativas al contenido de origen, de modo que (0,0) especifica la esquina superior izquierda del contenido de origen. Para las imágenes, las dimensiones especificadas por el cuadro de vista del pincel se expresan en las unidades de 1/96". Las coordenadas de píxeles correspondientes de la imagen de origen se calculan de la siguiente manera:
En la ilustración siguiente, la imagen de la izquierda es un ejemplo de una imagen de origen y que en el extremo derecho es el pincel que resulta después de seleccionar el cuadro de vista.
Si la resolución de la imagen de origen es de 96 por 96 puntos por pulgada y las dimensiones de imagen son de 96 por 96 píxeles, los valores de los campos del parámetro viewbox son los siguientes:Los valores de parámetro anteriores corresponden a la imagen de origen de la siguiente manera:
- SourceLeft = (96 × 48) / 96 = 48 píxeles del lado izquierdo
- SourceTop = (96 × 24) / 96 = 24 píxeles desde la parte superior
- SourceWidth = (96 × 24) / 96 = 24 píxeles de ancho
- SourceHeight = (96 × 48) / 96 = 48 píxeles de alto
Un pincel de imagen es un pincel de mosaico que toma una imagen, o una parte de ella, transforma la imagen para crear un icono, coloca el icono resultante en la ventanilla (la geometría de destino del icono en el área de salida) y rellena el área de salida tal y como se describe en el modo de mosaico.
La ventanilla es el área cubierta por el primer icono del área de salida. La imagen de ventanilla se repite en todo el área de salida, tal y como se describe en el modo de mosaico.
En la ilustración siguiente se muestra cómo se usa un pincel de imagen para rellenar un área de salida. De izquierda a derecha, la imagen original se transforma para rellenar la ventanilla, después se coloca en el área de ventanilla del área de salida y, a continuación, se coloca en mosaico para rellenar el área de salida.
En el ejemplo de código siguiente se muestra cómo se usa este método para crear una nueva interfaz.
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
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | xpsobjectmodel.h |