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 は、勝者が picKeepOriginal ではなく、SavedBytes が MinimumSavingBytes に達した場合にのみ True になります。それ以外の場合は、判定は保存バイト数 0 の picKeepOriginal にリセットされます
Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
ReEncode := Decision.Codec;