Compartilhar via


Função EngStretchBlt (winddi.h)

A função EngStretchBlt faz com que o GDI faça uma transferência de bloco de bits alongamento.

Sintaxe

ENGAPI BOOL EngStretchBlt(
       SURFOBJ         *psoDest,
       SURFOBJ         *psoSrc,
       SURFOBJ         *psoMask,
       CLIPOBJ         *pco,
       XLATEOBJ        *pxlo,
  [in] COLORADJUSTMENT *pca,
  [in] POINTL          *pptlHTOrg,
  [in] RECTL           *prclDest,
  [in] RECTL           *prclSrc,
       POINTL          *pptlMask,
  [in] ULONG           iMode
);

Parâmetros

psoDest

Ponteiro para uma estrutura SURFOBJ que descreve a superfície na qual desenhar.

psoSrc

Ponteiro para uma estrutura SURFOBJ que descreve a superfície de origem para a transferência de bloco de bits.

psoMask

Ponteiro para uma estrutura SURFOBJ que define uma máscara para a origem. A máscara é definida por um mapa lógico, que é um bitmap com um bit por pixel.

A máscara limita a área da origem copiada. Se esse parâmetro for especificado, ele terá um rop4 implícito de 0xCCAA, o que significa que a origem deve ser copiada onde quer que a máscara seja 1, mas o destino deve ser deixado sozinho onde quer que a máscara seja 0.

Se esse parâmetro for NULL, o rop4 será implicitamente 0xCCCC, o que significa que a origem deve ser copiada em todos os lugares no retângulo de origem.

pco

Ponteiro para uma estrutura CLIPOBJ que limita a área a ser modificada no destino. Os serviços GDI são fornecidos para enumerar a região de clipe como um conjunto de retângulos.

Sempre que possível, a GDI simplifica o recorte envolvido. No entanto, ao contrário de DrvBitBlt, EngStretchBlt pode ser chamado com um único retângulo de recorte. Isso impede erros de arredondamento ao recortar a saída.

pxlo

Ponteiro para uma estrutura XLATEOBJ que especifica como os índices de cor devem ser convertidos entre as superfícies de origem e de destino.

Essa estrutura XLATEOBJ também pode ser consultada para localizar a cor RGB para qualquer índice de origem. Uma transferência de bloco de bits de alta qualidade precisará interpolar cores em alguns casos.

[in] pca

Ponteiro para uma estrutura COLORADJUSTMENT que define os valores de ajuste de cor a serem aplicados ao bitmap de origem antes de alongar os bits. Para obter mais informações, consulte a documentação do SDK do Microsoft Windows.

[in] pptlHTOrg

Ponteiro para uma estrutura POINTL que define a origem do pincel de meio-tom. Os drivers que usam pincéis de meio tom devem alinhar o pixel superior esquerdo do padrão do pincel com esse ponto na superfície do dispositivo.

[in] prclDest

Ponteiro para uma estrutura RECTL que define a área a ser modificada no sistema de coordenadas da superfície de destino. Esse retângulo é definido por dois pontos que não são bem ordenados, o que significa que as coordenadas do segundo ponto não são necessariamente maiores do que as do primeiro ponto. O retângulo descrito não inclui as bordas inferior e direita. Essa função nunca é chamada com um retângulo de destino vazio.

Se o retângulo de destino não for bem ordenado, EngStretchBlt o tornará bem ordenado.

[in] prclSrc

Ponteiro para uma estrutura RECTL que define a área a ser copiada, no sistema de coordenadas da superfície de origem. O retângulo será mapeado para o retângulo definido por prclDest. Essa função nunca recebe um retângulo de origem vazio e os pontos do retângulo de origem são sempre bem ordenados.

O mapeamento é definido por prclSrc e prclDest. Os pontos especificados em prclDest e prclSrc estão em coordenadas de inteiro, que correspondem a centros de pixels. Um retângulo definido por dois desses pontos é considerado um retângulo geométrico com dois vértices cujas coordenadas são os pontos fornecidos, mas com 0,5 subtraído de cada coordenada. (As estruturas POINTL são notação abreviada para especificar esses vértices de coordenadas fracionárias.)

As bordas de qualquer retângulo nunca cruzam um pixel, mas giram em torno de um conjunto de pixels. Os pixels que estão dentro do retângulo são aqueles esperados para um retângulo exclusivo inferior direito. EngStretchBlt mapeia o retângulo de origem geométrica exatamente para o retângulo de destino geométrico.

pptlMask

Ponteiro para uma estrutura POINTL que define o pixel na máscara fornecida que corresponde ao pixel superior esquerdo no retângulo de origem. Esse parâmetro será ignorado se nenhuma máscara for especificada.

[in] iMode

Especifica como os pixels de origem são combinados para obter pixels de saída. O modo HALFTONE é mais lento que os outros modos, mas produz imagens de maior qualidade.

Valor Significado
BLACKONWHITE Em uma transferência de bloco de bits reduzida, os pixels devem ser combinados com uma operação AND booliana. Em uma transferência de bloco de bits de alongamento, os pixels devem ser replicados.
COLORONCOLOR Em uma transferência de bloco de bits reduzida, pixels suficientes devem ser ignorados para que os pixels não precisem ser combinados. Em uma transferência de bloco de bits de alongamento, os pixels devem ser replicados.
HALFTONE O driver pode usar grupos de pixels na superfície de saída para aproximar melhor a cor ou o nível cinza da entrada.
WHITEONBLACK Em uma transferência de bloco de bits reduzida, os pixels devem ser combinados com uma operação OR booliana. Em uma transferência de bloco de bits de alongamento, os pixels devem ser replicados.

Retornar valor

O valor retornado será TRUE se a função for bem-sucedida. Caso contrário, ele será FALSE e um código de erro será relatado.

Comentários

Essa função permite que o mesmo algoritmo de halftoning seja aplicado a bitmaps GDI e superfícies de dispositivo.

O driver deve chamar EngStretchBlt se ele tiver fisgado DrvStretchBlt e for chamado para fazer algo que o driver não dá suporte.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows 2000 e versões posteriores dos sistemas operacionais Windows.
Plataforma de Destino Universal
Cabeçalho winddi.h (inclua Winddi.h)
Biblioteca Win32k.lib
DLL Win32k.sys

Confira também

CLIPOBJ

DrvBitBlt

DrvStretchBlt

SURFOBJ

XLATEOBJ