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와 동일하며, 두 속성은 인덱서의
반환 타입만 다릅니다. Image[Index]는 디코딩된 픽셀 버퍼를 Data에 담고
아직 인코딩된 이미지 스트림을 RawData에 담는
TPdfImage 레코드를 돌려주는 반면,
Bitmap[Index]는 그 버퍼를 호출자가 소유하는 관리형 VCL TBitmap으로
감쌉니다
전형적인 루프는 for I := 0 to Pdf.BitmapCount - 1 do와 그 뒤의
Pdf.Bitmap[I]입니다. 접근할 때마다 새 TBitmap이 할당되고 픽셀이
복사되므로 촘촘한 렌더링 루프에서 호출하지 말고, 재사용할 때는 비트맵을 캐시하세요
GDI 리소스를 신속히 해제하려면 다 쓴 반환 비트맵은 반드시 Free 하세요
TBitmap의 알파 채널에 병합합니다ImageCount / Image[Index]가 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;