TPicture.LoadFromFile, поэтому поддерживается любой формат изображения, зарегистрированный в графической системе VCL или LCL. Это включает BMP, PNG (через Vcl.Imaging.PngImage или эквивалент LCL), JPEG и другие. Координаты заданы в пользовательском пространстве PDF, где начало находится в левом нижнем углу страницы; Width и Height задают размер размещения в пользовательских единицах, а не размер исходного изображения в пикселяхprocedure AddImage(const FileName: string; X, Y, Width, Height: Double);
| FileName | string. Полный путь к файлу изображения. Допускается любой формат, зарегистрированный в графической системе VCL/LCL, включая BMP, PNG, JPG и другие |
procedure AddImage(Bitmap: TBitmap; X, Y, Width, Height: Double);
| Bitmap | TBitmap. Предварительно загруженный bitmap с PixelFormat = pf32bit. Не должен быть nil; иначе выбрасывается EPdfError |
AddImage размещает изображение на текущей PDF-странице в указанной позиции и размере. Доступны две перегрузки: одна загружает изображение напрямую из пути к файлу, другая принимает уже подготовленный объект TBitmap
Перегрузка на основе файла внутренне использует TPicture.LoadFromFile, поэтому поддерживается любой формат изображения, зарегистрированный в графической системе VCL или LCL, включая BMP, PNG (через Vcl.Imaging.PngImage или эквивалент LCL), JPEG и другие. Перед вызовом метода убедитесь, что нужные модули подключены в секции uses проекта
Перегрузка для bitmap принимает TBitmap с PixelFormat = pf32bit. Это полезно, когда bitmap уже находится в памяти, например после отрисовки вне экрана, и позволяет избежать обращения к диску или к TPicture. Передача nil-bitmap вызывает исключение EPdfError
Параметры X и Y задают левый нижний угол прямоугольника размещения изображения в единицах пользователя PDF (начало координат в левом нижнем углу страницы, Y растет вверх). Width и Height задают размер отрисовки на странице; исходное изображение масштабируется под эти размеры независимо от пиксельного разрешения
// Разместить PNG-файл в точке (72, 600), отрисованный как 200 x 150 pt на странице
Pdf1.NewPage(595, 842);
Pdf1.AddImage('C:\Images\logo.png', 72, 600, 200, 150);
// Добавить заранее подготовленный 32-битный bitmap
var
Bmp: TBitmap;
begin
Bmp := TBitmap.Create;
try
Bmp.PixelFormat := pf32bit;
Bmp.LoadFromFile('C:\Images\photo.bmp');
Pdf1.AddImage(Bmp, 72, 400, 300, 200);
finally
Bmp.Free;
end;
end;