Compartilhar via


Método IXpsOMObjectFactory::CreateImageBrush (xpsobjectmodel.h)

Cria uma interface IXpsOMImageBrush .

Sintaxe

HRESULT CreateImageBrush(
  [in]          IXpsOMImageResource *image,
  [in]          const XPS_RECT      *viewBox,
  [in]          const XPS_RECT      *viewPort,
  [out, retval] IXpsOMImageBrush    **imageBrush
);

Parâmetros

[in] image

A interface IXpsOMImageResource que contém a imagem a ser usada como a imagem de origem do pincel.

[in] viewBox

A estrutura XPS_RECT que define a caixa de exibição, que é a área da imagem de origem usada pelo pincel.

[in] viewPort

A estrutura XPS_RECT que define o visor, que é a área coberta pelo primeiro bloco na área de saída.

[out, retval] imageBrush

Um ponteiro para a nova interface IXpsOMImageBrush .

Retornar valor

O método retorna um HRESULT. Os valores possíveis incluem, mas não se limitam a, aqueles na tabela a seguir. Para obter informações sobre valores retornados da API de documento XPS que não estão listados nesta tabela, consulte Erros de documento XPS.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
E_POINTER
image, viewBox, viewPort ou imageBrush é NULL.
E_INVALIDARG
viewBox ou viewPort contém um retângulo ou valor que não é válido.

Comentários

A caixa de exibição do pincel especifica a parte de uma imagem de origem ou visual a ser usada como a imagem do bloco.

As coordenadas da caixa de exibição do pincel são relativas ao conteúdo de origem, de modo que (0,0) especifica o canto superior esquerdo do conteúdo de origem. Para imagens, as dimensões especificadas pela caixa de exibição do pincel são expressas nas unidades de 1/96". As coordenadas de pixel correspondentes na imagem de origem são calculadas da seguinte maneira:

Na ilustração a seguir, a imagem à esquerda é um exemplo de uma imagem de origem e que, na extrema direita, é o pincel que resulta depois de selecionar a caixa de exibição.

Uma ilustração que mostra um exemplo de caixa de exibição Se a resolução da imagem de origem for de 96 por 96 pontos por polegada e as dimensões de imagem forem de 96 por 96 pixels, os valores dos campos no parâmetro viewbox serão os seguintes:

Os valores de parâmetro anteriores correspondem à imagem de origem da seguinte maneira:

SourceLeft = (96 × 48) / 96 = 48 pixels do lado esquerdo
SourceTop = (96 × 24) / 96 = 24 pixels da parte superior
SourceWidth = (96 × 24) / 96 = 24 pixels de largura
SourceHeight = (96 × 48) / 96 = 48 pixels de altura

Um pincel de imagem é um pincel de bloco que usa uma imagem ou uma parte dela transforma a imagem para criar um bloco, coloca o bloco resultante no visor (a geometria de destino do bloco na área de saída) e preenche a área de saída, conforme descrito pelo modo de bloco.

O visor é a área coberta pelo primeiro bloco na área de saída. A imagem do visor é repetida em toda a área de saída, conforme descrito pelo modo de bloco.

A próxima ilustração mostra como um pincel de imagem é usado para preencher uma área de saída. Da esquerda para a direita, a imagem original é transformada para preencher o visor, depois colocada na área do visor da área de saída e, em seguida, em bloco para preencher a área de saída.

Uma figura que mostra como um pincel de bloco preenche uma geometria O exemplo de código a seguir ilustra como esse método é usado para criar uma nova interface.

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 Valor
Cliente mínimo com suporte Windows 7, Windows Vista com SP2 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2, Windows Server 2008 com SP2 e Atualização de Plataforma para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho xpsobjectmodel.h

Confira também

IXpsOMImageBrush

IXpsOMImageResource

IXpsOMObjectFactory

IXpsOMTileBrush

Especificação de Papel XML

Erros de documento XPS

XPS_RECT