Método THotPDF.ExtractLoadedImageToStream
Escribe un XObject de imagen cargado directamente a un destino propio de quien llama sin crear un arreglo de bytes de tamaño completo
Declaración
function ExtractLoadedImageToStream(ImageIndex: Integer;
Destination: TStream; Mode: THPDFLoadedImageStreamMode= lismEncoded): boolean;
Unidad
HPDFDoc
Parámetros
| Nombre | Propósito |
|---|---|
ImageIndex | Índice basado en cero de GetLoadedImageCount |
Destination | Flujo propio de quien llama que recibe los bytes en su posición actual |
Mode | lismEncoded copia el payload nativo de imagen, mientras que lismDecoded ejecuta la cadena genérica de filtros de flujo PDF |
Valor de retorno
Devuelve True cuando la imagen seleccionada y el modo de extracción se completan con éxito
Notas de uso
lismEncodedfunciona para payloads nativos DCT, JPX, JBIG2, CCITT, Flate, LZW y sin filtrar, y restaura la posición de origenlismDecodedadmite las familias genéricas Flate, LZW, ASCII85, ASCIIHex y RunLength a través del pipeline de decodificación acotado- Los filtros terminales nativos de imagen como DCT o JPX siguen codificados y deben usar
lismEncoded - La extracción decodificada consume los presupuestos de decodificación por cadena y a nivel de documento
- Una escritura decodificada fallida puede dejar bytes parciales en el destino, así que use un flujo temporal cuando se requiera salida atómica
Ejemplo
Output := TFileStream.Create('image.bin', fmCreate);
try
if not PDF.ExtractLoadedImageToStream(0, Output, lismEncoded) then
raise Exception.Create('Image extraction failed');
finally
Output.Free;
end;