property BitmapCount: Integer; // read only
BitmapCount geeft het aantal afbeeldingspaginaobjecten op de momenteel actieve pagina terug (PDF 1.7-spec sectie 8.9). Het hoort bij de indexeerder Bitmap[Index], die de onderliggende afbeeldingsstream decodeert naar een volledig gerenderde Delphi TBitmap (32-bits RGBA, klaar voor Canvas.Draw, klembordoverdracht of opslag naar PNG/BMP)
De waarde is 0 wanneer Active False is, wanneer PageNumber ongeldig is of wanneer de pagina geen afbeeldingsobjecten bevat. De telling is identiek aan ImageCount; de twee eigenschappen verschillen alleen in het retourtype van hun indexeerders — Image[Index] geeft de ruwe gedecodeerde pixelbuffer terug in een TPdfImage-record, terwijl Bitmap[Index] die buffer verpakt in een beheerde VCL TBitmap die eigendom is van de aanroeper
De typische lus is for I := 0 to Pdf.BitmapCount - 1 do gevolgd door Pdf.Bitmap[I]. Elke toegang wijst een nieuwe TBitmap toe en kopieert pixels — roep dit niet aan in strakke renderlussen; cache de bitmap wanneer u die hergebruikt. Geef elke teruggegeven bitmap vrij wanneer u klaar bent om GDI-resources snel vrij te maken
TBitmapImageCount / Image[Index] de GDI-bitmap-allocatieoverhead
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;