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 вимагає білевого зображення без альфи, 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;