function SelectPdfImageCodec(const Candidate: TPdfImageCodecCandidate;
AllowedCodecs: TPdfImageCodecs; MinimumSavingBytes: Int64 = 1): TPdfImageCodecDecision;
| Candidate | TPdfImageCodecCandidate |
| AllowedCodecs | TPdfImageCodecs |
| MinimumSavingBytes | Int64 |
TPdfImageCodecDecisionSelectPdfImageCodec یک تابع کمکی تصمیم خالص است که برآوردهای EncodedBytes ثبتشده روی کاندید را مقایسه میکند و برمیگرداند کدام کدک باید تصویر را ذخیره کند
هر کدک مجاز ابتدا از نظر شرایط سنجیده میشود: picJpeg بدون alpha بودن، تصویر غیر باینری، 8 بیت بهازای هر مؤلفه، 1 یا 3 یا 4 مؤلفه و شمار رنگ یکتای نامشخص یا بیشتر از 256 را لازم دارد؛ picJpx تصویر غیر باینری با دست کم 8 بیت بهازای هر مؤلفه و 1 تا 4 مؤلفه را لازم دارد؛ picCcittGroup4 تصویر باینری بدون alpha، 1 بیت بهازای هر مؤلفه و یک مؤلفه منفرد را لازم دارد؛ picFlate دست کم 1 بیت بهازای هر مؤلفه و دست کم 1 مؤلفه را میپذیرد
در میان کدکهای واجد شرایط کوچکترین مقدار مثبت EncodedBytes برنده میشود و تصمیم مقدارهای OriginalBytes، SelectedBytes و SavedBytes را گزارش میکند
ReplaceOriginal فقط وقتی True است که برنده picKeepOriginal نباشد و SavedBytes به MinimumSavingBytes برسد؛ در غیر این صورت تصمیم به picKeepOriginal با صفر بایت صرفهجوییشده بازنشانی میشود
Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
ReEncode := Decision.Codec;