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

Bitmap Свойство

Эта запись API сохраняет идентификаторы, сигнатуры, блоки кода и термины PDF в исходном виде.
Компонент: TPdf  ·  Модуль: PDFium
Возвращает только что декодированный VCL TBitmap, содержащий растровые данные указанного объекта изображения на текущей странице. Bitmap выделяется заново при каждом вызове; владелец объекта отвечает за вызов Free

Синтаксис

property Bitmap[Index: Integer]: TBitmap; // read only

IndexИндекс изображения с нуля на текущей странице в диапазоне от 0 до BitmapCount - 1

Описание

Bitmap возвращает TBitmap, содержащий пиксельные данные n-го растрового изображения на текущей странице. PDFium декодирует базовый поток (JPEG, JPEG2000, CCITT, JBIG2 или пиксельные данные FlateDecode), а PDFiumPas преобразует результат в VCL TBitmap с сохранением исходного разрешения изображения, причём альфа-канал сохраняется как 32-битная поверхность ARGB, если источник предоставляет soft mask

Каждый вызов выделяет новый bitmap; свойство не кэширует результат. Это делает его безопасным для вызова из рабочих потоков, но означает, что вызывающий код всегда должен освобождать возвращённый объект, как правило внутри блока try .. finally

Если дополнительно нужны матрица преобразования изображения на странице и ограничивающий прямоугольник, используйте вместо этого Image[Index] — он возвращает запись, которая объединяет тот же TBitmap с позиционной метаинформацией. Нейтральный к форме родственник ObjectBitmap[ObjectIndex] индексирует полный массив объектов страницы, включая текст, пути и изображения, и возвращает тот же bitmap, если целевой объект действительно является изображением

Примечания

Пример

// 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;

См. также

BitmapCount, Image, ImageCount, ObjectBitmap