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 |
---|---|
|
O método foi bem-sucedido. |
|
image, viewBox, viewPort ou imageBrush é NULL. |
|
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.
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.
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 |