Документация PDFiumPas

BitmapCount Свойство

Эта запись API сохраняет идентификаторы, сигнатуры, блоки кода и термины PDF в исходном виде.
Компонент: TPdf  ·  Модуль: PDFium
Количество объектов-изображений на активной странице, доступных как VCL TBitmap

Синтаксис

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-ресурсы

Примечания

Пример

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;

См. также

Bitmap, ImageCount, Image, ObjectBitmap