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

ImageCount Свойство

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

Синтаксис

property ImageCount: Integer; // read only

Описание

ImageCount перечисляет каждый page object, тип которого равен FPDF_PAGEOBJ_IMAGE на странице, выбранной PageNumber. В терминах PDF это Image XObjects, на которые ссылается content stream страницы (раздел 8.9 спецификации PDF 1.7) Векторное содержимое, form XObjects, shading и text glyphs намеренно исключены, так что значение совпадает с тем, что человек назвал бы «картинкой» на странице

Свойство требует, чтобы Active было True, и чтобы PageNumber был допустим. Когда документ не загружен, значение равно 0 ImageCount является величиной на страницу; обходите каждую страницу и суммируйте счет, чтобы получить итог по всему документу. ImageCount эквивалентен BitmapCount и естественно сочетается с индексатором Image[Index], который возвращает декодированную запись TPdfImage (Width, Height, raw pixel bytes)

Обычный шаблон цикла выглядит как for I := 0 to Pdf.ImageCount - 1 do, а Pdf.Image[I] дает декодированные pixels. Стоимость растет вместе с размером image data, потому что PDFium по требованию декодирует потоки JPEG / JPEG2000 / CCITTFax / Flate; кэшируйте результат, если он нужен больше одного раза на страницу

Примечания

Пример

// Save every image on the current page to disk.
var I: Integer;
var Img: TPdfImage;
begin
  Pdf1.Active := True;
  for I := 0 to Pdf1.ImageCount - 1 do
  begin
    Img := Pdf1.Image[I];
    TFile.WriteAllBytes(Format('page%d_img%d.bin', [Pdf1.PageNumber, I]), Img.Data);
  end;
end;

См. также

Image, BitmapCount, Bitmap, ObjectCount