Compartir a través de


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
S_OK
El método se ha llevado a cabo de forma correcta.
E_POINTER
image, viewBox, viewPort o imageBrush es NULL.
E_INVALIDARG
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.

Ilustración que muestra un ejemplo de 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.

Ilustración que muestra cómo un pincel de mosaico rellena una geometría 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

Consulte también

IXpsOMImageBrush

IXpsOMImageResource

IXpsOMObjectFactory

IXpsOMTileBrush

XML Paper Specification

Errores del documento XPS

XPS_RECT