property BitmapCount: Integer; // read only
BitmapCount מחזיר את מספר אובייקטי התמונה בעמוד הפעיל כרגע
(מפרט PDF 1.7, סעיף 8.9). הוא משתלב עם ה-indexer Bitmap[Index],
שמפענח את זרם התמונה הבסיסי ל-TBitmap של Delphi גמור רינדור
(32-bit RGBA, מוכן ל-Canvas.Draw, להעברה ללוח
או לשמירה כ-PNG/BMP)
הערך הוא 0 כאשר Active הוא False, כאשר
PageNumber אינו תקף, או כאשר העמוד אינו מכיל אובייקטי תמונה. הספירה
זהה ל-ImageCount; שני המאפיינים נבדלים רק בטיפוס ההחזרה של ה-indexer
שלהם — Image[Index] מחזיר רשומת
TPdfImage שב-Data שלה חוצץ הפיקסלים המפוענח
וב-RawData שלה זרם התמונה עדיין מקודד, בעוד ש-Bitmap[Index]
עוטף את החוצץ ב-VCL TBitmap מנוהל בבעלות הקורא
הלולאה האופיינית היא for I := 0 to Pdf.BitmapCount - 1 do ואחריה
Pdf.Bitmap[I]. כל גישה מקצה TBitmap חדש ומעתיקה
פיקסלים — אל תקראו לכך בלולאות רינדור צמודות; שמרו את מפת הסיביות במטמון כאשר היא נעשית בשימוש חוזר
שחררו כל מפת סיביות שהוחזרה עם הסיום כדי להשיב משאבי GDI במהירות
TBitmap המפוענח אוטומטית על ידי PDFiumImageCount / Image[Index] חוסכים את התקורה של
הקצאת מפת סיביות 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;