PDFium Component Docs

Bitmap 속성

이 API 항목은 식별자, 시그니처, 코드 블록, PDF 용어를 원래 형태로 유지합니다.
컴포넌트: TPdf  ·  유닛: PDFium
현재 page의 지정한 image object raster 데이터를 담은 새로 디코딩한 VCL TBitmap을 반환합니다. 호출할 때마다 bitmap이 새로 할당되며, 호출자가 이를 소유하고 Free를 호출할 책임이 있습니다

구문

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

Index현재 page의 0 기반 image index입니다. 범위는 0 .. BitmapCount - 1입니다

설명

Bitmap는 현재 page의 n번째 raster image pixel 데이터를 담은 TBitmap을 반환합니다. PDFium은 기반 stream(JPEG, JPEG2000, CCITT, JBIG2, FlateDecode pixel data)을 디코딩하고, PDFiumPas는 source가 soft mask를 제공하는 경우 alpha가 보존된 32-bit ARGB surface로 그 결과를 VCL TBitmap으로 변환합니다

호출할 때마다 새 bitmap이 할당되며 캐시하지 않습니다. 그래서 worker thread에서 호출해도 안전하지만, 호출자는 반환된 object를 항상 해제해야 하며 보통 try .. finally 블록 안에서 처리합니다

이미지의 page 내 transformation matrix와 bounding rectangle도 필요하면 대신 Image[Index]를 사용하세요. 이쪽은 같은 TBitmap에 위치 메타데이터를 묶은 record를 반환합니다. 모양을 구분하지 않는 자매 항목 ObjectBitmap[ObjectIndex]는 전체 page-object 배열(text, path, image 혼합)을 인덱싱하며, 대상 object가 이미지일 때 같은 bitmap을 반환합니다

비고

예제

// 현재 page의 모든 이미지를 번호가 붙은 BMP 파일로 내보냅니다
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