Método THotPDF.ExtractLoadedImageToStream
Escribe un XObject de imagen cargado directamente a un destino propiedad del llamador sin crear una matriz 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 de base cero procedente de GetLoadedImageCount |
Destination | Flujo propiedad del llamador que recibe los bytes en su posición actual |
Mode | lismEncoded copia la carga útil nativa de la imagen, mientras que lismDecoded ejecuta la cadena genérica de filtros de flujo PDF |
Valor devuelto
Devuelve True cuando la imagen y el modo de extracción seleccionados se completan correctamente
Notas de uso
lismEncodedfunciona con cargas útiles DCT, JPX, JBIG2, CCITT, Flate, LZW y sin filtrar nativas y restaura la posición de origenlismDecodedadmite las familias genéricas Flate, LZW, ASCII85, ASCIIHex y RunLength a través de la canalización de decodificación acotada- Los filtros terminales nativos de la imagen, como DCT o JPX, permanecen 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, de modo que use un flujo temporal cuando se requiera una 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;