PDFium Delphi Component Docs

BitmapCount プロパティ

コンポーネント: TPdf  ·  ユニット: PDFium
VCL TBitmap としてアクセスできる、アクティブページ上の画像ページオブジェクトの数です

構文

property BitmapCount: Integer; // read only

説明

BitmapCount は、現在アクティブなページ上の画像ページオブジェクトの数を返します (PDF 1.7 仕様 8.9 節)。インデクサ Bitmap[Index] と対で使います。インデクサは基盤の画像ストリームを、完全にレンダリングされた Delphi の TBitmap (32 ビット RGBA、Canvas.Draw、クリップボード転送、PNG/BMP 保存にそのまま使用可能) へデコードします

Active が False のとき、PageNumber が無効なとき、ページに画像オブジェクトがないときは、この値は 0 になります。この数は ImageCount と同一であり、2 つのプロパティが異なるのはインデクサの戻り値の型だけです。Image[Index] は TPdfImage レコードを返します。その Data はデコード済みのピクセルバッファを保持し、RawData はまだエンコードされたままの画像ストリームを保持します。一方 Bitmap[Index] はそのバッファを、呼び出し側が所有する管理された VCL TBitmap としてラップします

典型的なループは for I := 0 to Pdf.BitmapCount - 1 do とその後の Pdf.Bitmap[I] です。アクセスのたびに新しい TBitmap が割り当てられピクセルがコピーされるため、タイトなレンダリングループの中で呼び出してはなりません。再利用する場合はビットマップをキャッシュし、使い終わったら各ビットマップを解放して GDI リソースを速やかに手放してください

備考

例

var I: Integer;
var Bmp: TBitmap;
for I := 0 to Pdf1.BitmapCount - 1 do
begin
  Bmp := Pdf1.Bitmap[I];
  try
    Bmp.SaveToFile(Format('image_%d.bmp', [I]));
  finally
    Bmp.Free;
  end;
end;

関連項目

Bitmap, ImageCount, Image, ObjectBitmap