property BitmapCount: Integer; // read only
BitmapCount restituisce il numero di oggetti di pagina immagine nella pagina attualmente attiva
(specificazione PDF 1.7, sezione 8.9). Si abbina all'indicizzatore Bitmap[Index],
che decodifica lo stream immagine sottostante in una TBitmap Delphi
interamente renderizzata (RGBA a 32 bit, pronta per Canvas.Draw, per gli appunti
o per il salvataggio in PNG/BMP)
Il valore è 0 quando Active è False, quando
PageNumber non è valido o quando la pagina non contiene oggetti immagine. Il
conteggio è identico a ImageCount; le due proprietà differiscono solo per il
tipo restituito dei loro indicizzatori — Image[Index] restituisce un
record TPdfImage il cui Data contiene il buffer di pixel decodificato
e il cui RawData porta lo stream immagine ancora codificato, mentre
Bitmap[Index] avvolge quel buffer in una TBitmap VCL gestita
di proprietà del chiamante
Il ciclo tipico è for I := 0 to Pdf.BitmapCount - 1 do seguito da
Pdf.Bitmap[I]. Ogni accesso alloca una nuova TBitmap e copia
i pixel — non chiamarla in cicli di rendering serrati; mettere in cache la bitmap quando viene riutilizzata.
Liberare ogni bitmap restituita una volta finito, per rilasciare prontamente le risorse GDI
TBitmap decodificata automaticamente da PDFiumImageCount / Image[Index] evita l'overhead di allocazione
della bitmap 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;