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; кэшируйте результат, если он нужен больше одного раза на страницу
BI/ID/EI),
PDFium сообщает вместе с XObject images, поэтому они включеныImageCount = 0 как быстрый check для «text-only page»
перед запуском дорогого OCR или генерации миниатюр
// 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;