PDFium Delphi Component Docs

מטמון תמונות ממוזערות

Component: TPdf  ·  Unit: PDFium
שימוש חוזר בתצוגות מקדימות מוטמעות ומרונדרות של עמודים באמצעות מטמון LRU אחד חסום המודע לגרסאות

Statistics type

TPdfThumbnailCacheStatistics = record
  EntryCount: Integer;
  StoredBytes: Int64;
  HitCount: Int64;
  MissCount: Int64;
  EvictionCount: Int64;
end;

EntryCount כולל רשומות ביטמפ חיוביות ואת היעדרן השמור של תמונות ממוזערות מוטמעות אופציונליות

StoredBytes מעריך את זיכרון הביטמפ כרוחב כפול גובה כפול ארבעה בייטים, ומוציא רשומות שליליות בנות אפס בייטים

מוני הפגיעות, ההחטאות והפינוי מצטברים לאורך חיי המופע של TPdf

Limits

property ThumbnailCacheMaxEntries: Integer; // default 64

property ThumbnailCacheMaxBytes: Int64; // default 64 MiB

המטמון שומר רשומה רק כל עוד שני תקרות הגבול מתירות זאת, ופונה את הרשומות הפחות בשימוש לאחרונה כאשר אחת מהן מצטמצמת

הגדרת אחת מהתקרות לאפס מבטלת שמירה תוך שמירה על זמינות החילוץ והרינדור

ערכים שליליים מעלים EPdfError

Statistics

property ThumbnailCacheStatistics: TPdfThumbnailCacheStatistics;

קריאות חוזרות ל-ExtractThumbnail ול-RenderPageThumbnail מוסיפות פגיעות והחטאות תחת אותו מנעול רינדור בו משתמשת גישת העמודים המקורית של PDFium

כל חיפוש ביטמפ מוצלח מחזיר עותק עמוק בבעלות הקורא, ולכן שחרורו או שינויו אינם יכולים להשפיע על פגיעה עתידית

Revision

property ThumbnailRevision: Int64;

הערך מתקדם כאשר תוכן עמוד או מבנה המסמך עלולים להפוך תצוגה מקדימה קיימת ללא עדכנית

TPdfThumbnailView עוקב אחר הגרסה הזו ומשליך את העותקים הפעילים של העמודים הגלויים לפני שהוא מצייר מחדש תוכן שנערך

Clear

procedure ClearThumbnailCache;

משחרר רשומות ביטמפ ורשומות שליליות שנשמרו מבלי לשנות את המגבלות, את המונים המצטברים, את העמוד הפעיל או את גרסת תוכן המסמך

Cache keys and invalidation

רשומות מרונדרות מובחנות לפי גרסת עמוד, מספר עמוד, גודל מרבי מבוקש, סיבוב, אפשרויות רינדור, רקע וכל שדה של TPdfColorScheme

תמונות ממוזערות מוטמעות משתמשות במפתח מקור נפרד ומטמינות גם ביטמפים מפוענחים וגם את היעדר רשומת /Thumb של עמוד

עריכת עמוד פוסלת את אותו עמוד, ואילו החלפת מסמך ושינויים בעץ העמודים מרוקנים את כל התמונות הממוזערות השמורות

Example

var
  Bitmap: TBitmap;
  Stats: TPdfThumbnailCacheStatistics;
begin
  Pdf.ThumbnailCacheMaxEntries := 128;
  Pdf.ThumbnailCacheMaxBytes := Int64(96) * 1024 * 1024;
  Bitmap := Pdf.RenderPageThumbnail(1, 180, 240);
  try
    Image1.Picture.Assign(Bitmap);
  finally
    Bitmap.Free;
  end;
  Stats := Pdf.ThumbnailCacheStatistics;
  LogCache(Stats.EntryCount, Stats.HitCount, Stats.MissCount);
end;

See Also

RenderPageThumbnail, ExtractThumbnail, TPdfThumbnailView