function AddJpegImage(JpegImage: TStream; X, Y, Width, Height: Double): Boolean;
| JpegImage | TStream. Поток с необработанными JPEG-сжатыми данными. При вызове метода позиция потока должна находиться в начале JPEG-данных |
True, если JPEG-данные были успешно декодированы и встроены на страницу. Возвращает False, если поток не содержит корректных JPEG-данных или если операция внедрения завершается с ошибкойAddJpegImage встраивает JPEG-изображение, переданное как необработанный байтовый поток, на текущую страницу PDF. Поскольку JPEG-данные передаются напрямую без повторного кодирования, качество изображения сохраняется в точности так, как оно хранится в исходном потоке. Это делает метод удобным для массовой генерации документов, когда декодирование и повторное сжатие изображений добавляло бы лишнюю потерю качества или нагрузку на CPU
Поток JpegImage должен содержать полный корректный файл JPEG, начиная с маркера SOI. Перед вызовом метода текущая позиция потока должна находиться в начале JPEG-данных. Допускается любой потомок TStream — TFileStream, TMemoryStream, потоки blob из базы данных и так далее
Параметры X и Y задают левый нижний угол прямоугольника размещения в пользовательских единицах PDF, где начало координат находится в левом нижнем углу страницы, а ось Y направлена вверх. Width и Height задают размер вывода на странице; JPEG масштабируется под него независимо от размеров в пикселях
Метод возвращает True при успешном выполнении. Если поток не содержит корректных JPEG-данных, он возвращает False без исключения, поэтому вызывающему коду следует проверять результат при работе с данными сомнительного происхождения
var
Stream: TFileStream;
begin
Stream := TFileStream.Create('C:\Images\photo.jpg', fmOpenRead or fmShareDenyNone);
try
Pdf1.NewPage(595, 842);
if not Pdf1.AddJpegImage(Stream, 72, 400, 300, 225) then
ShowMessage('Failed to embed JPEG image.');
finally
Stream.Free;
end;
end;