THotPDF.DecodeLoadedImageRegionAtResolution Method
Decodifica um retângulo de coordenadas de origem enquanto permite que o decodificador selecione um nível de resolução mais baixo que ainda atenda ao tamanho de saída solicitado
Declaração
function DecodeLoadedImageRegionAtResolution(
AImageStream: THPDFStreamObject;
RegionLeft, RegionTop, RegionRight, RegionBottom,
TargetPixelWidth, TargetPixelHeight: Integer): TBitmap;
Unidade
HPDFDoc
Parâmetros
| Nome | Finalidade |
|---|---|
AImageStream | Fluxo XObject de imagem carregada a ser decodificado |
RegionLeft | Coordenada de origem esquerda inclusiva |
RegionTop | Coordenada de origem superior inclusiva |
RegionRight | Coordenada de origem direita exclusiva |
RegionBottom | Coordenada de origem inferior exclusiva |
TargetPixelWidth | Largura decodificada útil mínima antes da escala final de renderização |
TargetPixelHeight | Altura decodificada útil mínima antes da escala final de renderização |
Valor de retorno
Retorna um bitmap recém-alocado para a região não vazia limitada, ou nil quando a imagem ou a geometria solicitada não pode ser decodificada
Seleção de resolução
- JPEG 2000 seleciona a maior redução por potência de dois cuja largura e altura decodificadas permanecem ambas pelo menos no tamanho de pixel solicitado
- A seleção nunca sub-resolve qualquer dimensão e, portanto, evita um aumento desnecessário de escala antes do desenho
- A seleção de região nativa e a seleção de resolução são combinadas antes da reconstrução de wavelets e da expansão de pixels
- Os workers JPEG 2000 isolados contra falhas recebem a mesma solicitação de redução e usam um orçamento de saída correspondentemente menor
- Quando o fallback nativo lida com uma região que cruza vários blocos do codestream, blocos independentes decodificam simultaneamente dentro dos limites de cancelamento, contagem de workers, saída e pico de memória
- Os resultados paralelos são compostos em ordem estável de linha principal e o orçamento de trabalho insuficiente seleciona transparentemente o caminho sequencial de região
- Uma imagem JPEG em DeviceRGB ou DeviceGray passa por um decodificador DCT de tamanho reduzido quando a região ou o tamanho solicitado difere da imagem completa: ela decodifica em uma escala DCT reduzida que ainda cobre a solicitação e retorna a região reamostrada exatamente para o tamanho solicitado
- Outros formatos de imagem suportados, e imagens JPEG em outros espaços de cor, preservam a decodificação exata da região e deixam qualquer escala final para o chamador
- O chamador é o proprietário de um bitmap retornado não nulo e deve liberá-lo
Exemplo
Preview := PDF.DecodeLoadedImageRegionAtResolution(
ImageStream, 0, 0, SourceWidth, SourceHeight, 320, 200);
try
Canvas.StretchDraw(TargetRect, Preview);
finally
Preview.Free;
end;