property BitmapCount: Integer; // read only
BitmapCount devuelve la cantidad de objetos de página de imagen en la página actualmente activa (sección 8.9 de la especificación PDF 1.7). Se empareja con el indizador Bitmap[Index], que decodifica el flujo de imagen subyacente en un TBitmap de Delphi completamente renderizado (RGBA de 32 bits, listo para Canvas.Draw, transferencia al portapapeles o guardado en PNG/BMP)
El valor es 0 cuando Active es False, cuando PageNumber no es válido o cuando la página no contiene objetos de imagen. La cantidad es idéntica a ImageCount; las dos propiedades difieren solo en el tipo de retorno de sus indizadores — Image[Index] entrega un registro TPdfImage cuyo Data contiene el búfer de píxeles decodificado y cuyo RawData lleva el flujo de imagen aún codificado, mientras que Bitmap[Index] ajusta ese búfer en un TBitmap administrado de VCL propiedad de quien llama
El bucle típico es for I := 0 to Pdf.BitmapCount - 1 do seguido de Pdf.Bitmap[I]. Cada acceso asigna un nuevo TBitmap y copia píxeles — no lo llame en bucles de renderizado ajustados; almacene el mapa de bits en caché cuando lo reutilice. Libere cada mapa de bits devuelto al terminar para liberar los recursos GDI con prontitud
TBitmap decodificadoImageCount / Image[Index] evita la sobrecarga de asignación de mapas de bits de 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;