property BitmapCount: Integer; // read only
BitmapCount retorna a contagem de objetos de página de imagem na página ativa atual
(seção 8.9 da especificação PDF 1.7). Faz par com o indexador Bitmap[Index],
que decodifica o fluxo de imagem subjacente em um Delphi
TBitmap totalmente renderizado (RGBA de 32 bits, pronto para Canvas.Draw, transferência para a área de transferência
ou salvamento em PNG/BMP)
O valor é 0 quando Active é False, quando
PageNumber é inválido ou quando a página não contém objetos de imagem. A
contagem é idêntica a ImageCount; as duas propriedades diferem apenas no
tipo de retorno de seus indexadores — Image[Index] devolve um
record TPdfImage cujo Data contém o buffer de pixels decodificado
e cujo RawData carrega o fluxo de imagem ainda codificado, enquanto
Bitmap[Index] encapsula esse buffer em um VCL TBitmap gerenciado
de propriedade do chamador
O loop típico é for I := 0 to Pdf.BitmapCount - 1 do seguido de
Pdf.Bitmap[I]. Cada acesso aloca um novo TBitmap e copia
pixels — não faça a chamada em loops de renderização intensivos; armazene o bitmap em cache quando ele for reutilizado.
Libere cada bitmap retornado ao terminar para liberar os recursos GDI prontamente
TBitmap decodificadoImageCount / Image[Index] evita a sobrecarga de alocação
do 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;