property Bitmap[Index: Integer]: TBitmap; // read only
| Index | Индекс изображения на текущей странице с нуля, в диапазоне от 0 до BitmapCount - 1 |
Bitmap возвращает TBitmap с пиксельными данными n-го растрового изображения на текущей странице. PDFium декодирует исходный поток (JPEG, JPEG2000, CCITT, JBIG2 или пиксельные данные FlateDecode), а PDFium Delphi Component превращает результат в VCL TBitmap в сохранённом разрешении изображения; там, где источник несёт soft mask, альфа сохраняется как 32-битная ARGB-поверхность
Каждый вызов выделяет новый bitmap; свойство ничего не кэширует. Поэтому вызывать его из рабочих потоков безопасно, но вызывающий обязан всегда освобождать возвращённый объект — обычно в блоке try .. finally
Если помимо этого нужны матрица трансформации изображения на странице и габаритный прямоугольник, берите Image[Index] — он возвращает запись, где тот же TBitmap идёт в комплекте с метаданными о позиции. А ObjectBitmap[ObjectIndex], безразличный к типу объекта, индексирует весь массив объектов страницы (текст, пути, изображения вперемешку) и вернёт тот же bitmap, если целевой объект оказался изображением
nil, когда Index вне диапазона или документ неактивен
// Export every image on the current page as numbered BMP files
var
I: Integer;
Bmp: TBitmap;
begin
for I := 0 to Pdf.BitmapCount - 1 do
begin
Bmp := Pdf.Bitmap[I];
try
Bmp.SaveToFile(Format('page_%d_img_%d.bmp', [Pdf.PageNumber, I]));
finally
Bmp.Free;
end;
end;
end;