property BitmapCount: Integer; // read only
BitmapCount renvoie le nombre d’objets de page image sur la page actuellement active
(section 8.9 de la spécification PDF 1.7). Il s’utilise avec l’indexeur Bitmap[Index],
qui décode le flux d’image sous-jacent en un TBitmap Delphi entièrement rendu
(RGBA 32 bits, prêt pour Canvas.Draw, le transfert vers le presse-papiers
ou l’enregistrement en PNG/BMP)
La valeur est 0 lorsque Active vaut False, lorsque
PageNumber est invalide ou lorsque la page ne contient aucun objet image. Le
nombre est identique à ImageCount ; les deux propriétés ne diffèrent que par le
type de retour de leurs indexeurs — Image[Index] renvoie un record
TPdfImage dont Data contient le tampon de pixels décodé et
RawData le flux d’image encore encodé, tandis que
Bitmap[Index] enveloppe ce tampon dans un TBitmap VCL géré
possédé par l’appelant
La boucle typique est for I := 0 to Pdf.BitmapCount - 1 do suivie de
Pdf.Bitmap[I]. Chaque accès alloue un nouveau TBitmap et copie
les pixels — ne l’appelez pas dans des boucles de rendu serrées ; mettez le bitmap
en cache lorsqu’il est réutilisé Libérez chaque bitmap renvoyé une fois terminé pour libérer rapidement les ressources GDI
TBitmap décodéImageCount / Image[Index] évite la surcharge
d’allocation de 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;