function SelectPdfImageCodec(const Candidate: TPdfImageCodecCandidate;
AllowedCodecs: TPdfImageCodecs; MinimumSavingBytes: Int64 = 1): TPdfImageCodecDecision;
| Candidate | TPdfImageCodecCandidate |
| AllowedCodecs | TPdfImageCodecs |
| MinimumSavingBytes | Int64 |
TPdfImageCodecDecisionSelectPdfImageCodec مساعد قرار خالص يقارن تقديرات EncodedBytes المسجلة على المرشح ويعيد أي مرمِّس ينبغي أن يخزن الصورة
يفحص كل مرمِّس مسموح أهلته أولًا: يشترط picJpeg عدم وجود ألفا وصورة غير ثنائية المستوى و 8 بت لكل مكون و 1 أو 3 أو 4 مكونات وعدد ألوان مميز مجهول أو أكبر من 256؛ ويشترط picJpx صورة غير ثنائية المستوى بـ 8 بت على الأقل لكل مكون ومن 1 إلى 4 مكونات؛ ويشترط picCcittGroup4 صورة ثنائية المستوى بلا ألفا وبت واحد لكل مكون ومكونًا واحدًا؛ ويقبل picFlate بتًا واحدًا على الأقل لكل مكون ومكونًا واحدًا على الأقل
من بين المرمِّسات المؤهلة يفوز أصغر قيمة EncodedBytes موجبة، ويُبلِّغ القرار عن OriginalBytes و SelectedBytes و SavedBytes
يكون ReplaceOriginal بالقيمة True فقط عندما لا يكون الرابح picKeepOriginal وعندما تبلغ SavedBytes قيمة MinimumSavingBytes؛ وإلا يُعاد القرار إلى picKeepOriginal بصفر بايتات موفَّرة
Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
ReEncode := Decision.Codec;