Método THotPDF.ExtractLoadedImageToStream
Grava um XObject de imagem carregado diretamente em um destino pertencente ao chamador sem criar uma matriz de bytes de tamanho total
Declaração
function ExtractLoadedImageToStream(ImageIndex: Integer;
Destination: TStream; Mode: THPDFLoadedImageStreamMode= lismEncoded): boolean;
Unit
HPDFDoc
Parâmetros
| Nome | Finalidade |
|---|---|
ImageIndex | Índice de base zero de GetLoadedImageCount |
Destination | Fluxo pertencente ao chamador que recebe bytes em sua posição atual |
Mode | lismEncoded copia o payload de imagem nativo, enquanto lismDecoded executa a cadeia de filtros de fluxo PDF genérica |
Valor de retorno
Retorna True quando a imagem selecionada e o modo de extração são concluídos com sucesso
Notas de uso
lismEncodedfunciona com payloads DCT, JPX, JBIG2, CCITT, Flate, LZW nativos e não filtrados e restaura a posição de origemlismDecodedoferece suporte às famílias genéricas Flate, LZW, ASCII85, ASCIIHex e RunLength por meio do pipeline de decodificação delimitado- Filtros de terminal nativos de imagem como DCT ou JPX permanecem codificados e devem usar
lismEncoded - A extração decodificada consome orçamentos de decodificação por cadeia e em nível de documento
- Uma gravação decodificada com falha pode deixar bytes parciais no destino, então use um fluxo temporário quando a saída atômica for necessária
Exemplo
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;