Método THotPDF.DecodeLoadedImageRegionAtResolution
Decodifica un rectángulo en coordenadas de origen, permitiendo que el decoder seleccione un nivel de resolución más bajo que aún satisfaga el tamaño de salida solicitado
Declaración
function DecodeLoadedImageRegionAtResolution(
AImageStream: THPDFStreamObject;
RegionLeft, RegionTop, RegionRight, RegionBottom,
TargetPixelWidth, TargetPixelHeight: Integer): TBitmap;
Unidad
HPDFDoc
Parámetros
| Nombre | Propósito |
|---|---|
AImageStream | Stream XObject de imagen cargada a decodificar |
RegionLeft | Coordenada izquierda de origen, incluida |
RegionTop | Coordenada superior de origen, incluida |
RegionRight | Coordenada derecha de origen, excluida |
RegionBottom | Coordenada inferior de origen, excluida |
TargetPixelWidth | Ancho decodificado mínimo útil antes de la escala final de render |
TargetPixelHeight | Alto decodificado mínimo útil antes de la escala final de render |
Valor de retorno
Devuelve un bitmap recién asignado para la región no vacía tras el ajuste, o nil cuando la imagen o la geometría solicitada no se pueden decodificar
Selección de resolución
- JPEG 2000 selecciona la mayor reducción en potencia de dos cuyo ancho y alto decodificados se mantengan al menos en el tamaño de píxel solicitado
- La selección nunca resuelve por debajo ninguna de las dos dimensiones y por lo tanto evita un upscale innecesario antes de dibujar
- La selección nativa de región y la selección de resolución se combinan antes de la reconstrucción wavelet y la expansión de píxeles
- Los workers JPEG 2000 aislados ante crashes reciben la misma solicitud de reducción y usan un budget de salida proporcionalmente menor
- Cuando el fallback nativo maneja una región que intersecta varios tiles del codestream, los tiles independientes se decodifican concurrentemente dentro de los límites de cancelación, número de workers, salida y memoria pico
- Los resultados paralelos se componen en un orden estable por filas y un budget de trabajo insuficiente selecciona de forma transparente la ruta secuencial de región
- Una imagen JPEG en DeviceRGB o DeviceGray pasa por un decodificador DCT de tamaño reducido cuando la región o el tamaño solicitado difieren de la imagen completa: decodifica a una escala DCT reducida que aún cubre la solicitud y devuelve la región remuestreada exactamente al tamaño solicitado
- Los demás formatos de imagen soportados, y las imágenes JPEG en otros espacios de color, preservan la decodificación exacta de la región y dejan cualquier escalado final al llamador
- El llamador es propietario del bitmap devuelto no nulo y debe liberarlo
Ejemplo
Preview := PDF.DecodeLoadedImageRegionAtResolution(
ImageStream, 0, 0, SourceWidth, SourceHeight, 320, 200);
try
Canvas.StretchDraw(TargetRect, Preview);
finally
Preview.Free;
end;