PDFium Delphi Component Docs

SelectPdfImageCodec 関数

ユニット: PDFium
計測済みのコーデックサイズの中から、1 つの画像に対して最も小さな適格な再エンコードを選びます

構文

function SelectPdfImageCodec(const Candidate: TPdfImageCodecCandidate;
  AllowedCodecs: TPdfImageCodecs; MinimumSavingBytes: Int64 = 1): TPdfImageCodecDecision;

パラメーター

CandidateTPdfImageCodecCandidate
AllowedCodecsTPdfImageCodecs
MinimumSavingBytesInt64

戻り値

TPdfImageCodecDecision

説明

SelectPdfImageCodec は、候補に記録された 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;

関連項目

TPdf.OptimizeImages, BuildToUnicodeCMap, TPdf.ImageInfo