function SelectPdfImageCodec(const Candidate: TPdfImageCodecCandidate;
AllowedCodecs: TPdfImageCodecs; MinimumSavingBytes: Int64 = 1): TPdfImageCodecDecision;
| Candidate | TPdfImageCodecCandidate |
| AllowedCodecs | TPdfImageCodecs |
| MinimumSavingBytes | Int64 |
TPdfImageCodecDecisionSelectPdfImageCodec הוא עוזר החלטה טהור שמשווה את הערכות ה-EncodedBytes שנרשמו על ה-candidate ומחזיר איזה codec צריך לאחסן את התמונה
כל codec מותר נבדק קודם לכשירות: picJpeg דורש היעדר alpha, תמונה שאינה bilevel, 8 ביטים לרכיב, 1, 3 או 4 רכיבים, ומספר צבעים ייחודיים לא ידוע או גדול מ-256; picJpx דורש תמונה שאינה bilevel עם לפחות 8 ביטים לרכיב ובין 1 ל-4 רכיבים; picCcittGroup4 דורש תמונת bilevel ללא alpha, ביט אחד לרכיב ורכיב יחיד; picFlate מקבל לפחות ביט אחד לרכיב ולפחות רכיב אחד
בין ה-codecs הכשירים זוכה הערך החיובי הקטן ביותר של EncodedBytes, וההחלטה מדווחת על OriginalBytes, SelectedBytes ו-SavedBytes
ReplaceOriginal הוא True רק כאשר הזוכה אינו picKeepOriginal ו-SavedBytes מגיע אל MinimumSavingBytes; אחרת ההחלטה מאופסת בחזרה אל picKeepOriginal עם אפס בתים שנחסכו
Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
ReEncode := Decision.Codec;