property ImageCount: Integer; // read only
ImageCount は、PageNumber で選択されたページ上の、タイプが FPDF_PAGEOBJ_IMAGE の page object をすべて数えます。PDF の言葉では、ページの content stream から参照される Image XObject です(PDF 1.7 仕様 8.9 節)。ベクターコンテンツ、form XObject、shading、テキストグリフは意図的に除外されるため、値は人間がページ上で「画像」と呼ぶものと一致します
このプロパティには Active が True で有効な PageNumber が必要です。ドキュメントが未ロードなら値は 0 です。ImageCount はページ単位の量なので、全ページを回して合計すればドキュメント全体の数になります。ImageCount は BitmapCount と等価で、デコード済みの TPdfImage レコード(Width、Height、生ピクセルバイト)を返す Image[Index] インデクサと自然に組めるよう用意されています
典型的なループは for I := 0 to Pdf.ImageCount - 1 do で、Pdf.Image[I] でデコード済みピクセルを得ます。コストは画像データ量に比例します。PDFium が JPEG / JPEG2000 / CCITTFax / Flate stream をオンデマンドでデコードするためです。同じページで 2 回以上使うなら結果をキャッシュしてください
BI/ID/EI)は、PDFium が XObject 画像と一緒に報告するため、ここに含まれますImageCount = 0 を「テキストだけのページ」の手早な判定に使えます
// 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;