property BitmapCount: Integer; // read only
BitmapCount возвращает количество объектов изображений на текущей активной странице
(раздел 8.9 спецификации PDF 1.7). Оно сочетается с индексатором Bitmap[Index],
который декодирует базовый поток изображения в полностью отрисованный Delphi
TBitmap (32-битный RGBA, готовый для Canvas.Draw,
передачи в буфер обмена или сохранения в PNG/BMP)
Значение равно 0, когда Active равно False,
когда PageNumber недействителен или когда на странице нет объектов
изображения. Это значение совпадает с ImageCount; различие между
свойствами только в типе возврата их индексаторов — Image[Index]
отдаёт необработанный декодированный буфер пикселей в записи TPdfImage,
тогда как Bitmap[Index] оборачивает этот буфер в управляемый VCL
TBitmap, который принадлежит вызывающему коду
Обычно используется цикл for I := 0 to Pdf.BitmapCount - 1 do с
последующим обращением к Pdf.Bitmap[I]. Каждый доступ выделяет новый
TBitmap и копирует пиксели — не вызывайте это в плотных циклах
отрисовки; кэшируйте bitmap при повторном использовании и освобождайте каждый
возвращённый bitmap по завершении, чтобы быстро освобождать GDI-ресурсы
TBitmapImageCount / Image[Index] позволяет
избежать накладных расходов на выделение GDI bitmap
var I: Integer;
var Bmp: TBitmap;
for I := 0 to Pdf1.BitmapCount - 1 do
begin
Bmp := Pdf1.Bitmap[I];
try
Bmp.SaveToFile(Format('image_%d.bmp', [I]));
finally
Bmp.Free;
end;
end;