THotPDF.ExtractLoadedImageToStream Method
Записывает одно загруженное изображение XObject напрямую в принадлежащее вызывающему коду назначение без создания полноразмерного массива байт
Объявление
function ExtractLoadedImageToStream(ImageIndex: Integer;
Destination: TStream; Mode: THPDFLoadedImageStreamMode= lismEncoded): boolean;
Модуль
HPDFDoc
Параметры
| Имя | Назначение |
|---|---|
ImageIndex | Отсчитываемый от нуля индекс из GetLoadedImageCount |
Destination | Принадлежащий вызывающему коду поток, принимающий байты в текущей позиции |
Mode | lismEncoded копирует собственную полезную нагрузку изображения, а lismDecoded выполняет универсальную цепочку фильтров потока PDF |
Возвращаемое значение
Возвращает True, когда выбранное изображение и режим извлечения завершаются успешно
Примечания по использованию
lismEncodedработает с собственными полезными нагрузками DCT, JPX, JBIG2, CCITT, Flate, LZW и неотфильтрованными, восстанавливая позицию источникаlismDecodedподдерживает универсальные семейства Flate, LZW, ASCII85, ASCIIHex и RunLength через ограниченный конвейер декодирования- Собственные терминальные фильтры изображения, такие как DCT или JPX, остаются кодированными и должны использовать
lismEncoded - Декодированное извлечение расходует цепочечный и документный бюджеты декодирования
- Сбой декодированной записи может оставить в назначении частичные байты, поэтому используйте временный поток, если требуется атомарный вывод
Пример
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;