property ImageCount: Integer; // read only
ImageCount 会枚举 PageNumber 所选页面上类型为 FPDF_PAGEOBJ_IMAGE 的每一个页面对象。从 PDF 的角度看,这些就是页面内容流引用的 Image XObject(PDF 1.7 规范第 8.9 节)。矢量内容、表单 XObject、渐变和文本字形都会被刻意排除,因此这个值与人工读者会称作页面上的“图片”的内容一致
此属性要求 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 流;如果每页要多次使用,请缓存结果
BI/ID/EI)会与 XObject 图像一起由 PDFium 报告,因此会被计入ImageCount = 0 作为一个快速的“纯文本页”检查,然后再运行昂贵的 OCR 或缩略图生成
// 将当前页面上的每个图像保存到磁盘
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;