PDFium Delphi Component Docs

SelectPdfImageCodec funkce

Jednotka: PDFium
Vybere nejmenší vhodné překódování jednoho obrázku z naměřených velikostí kodeků

Syntaxe

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

Parametry

CandidateTPdfImageCodecCandidate
AllowedCodecsTPdfImageCodecs
MinimumSavingBytesInt64

Návratová hodnota

TPdfImageCodecDecision

Popis

SelectPdfImageCodec je čistý rozhodovací helper, který porovná odhady EncodedBytes zaznamenané na kandidátovi a vrátí, který kodek má obrázek uložit

Každý povolený kodek se nejdřív zkontroluje na způsobilost: picJpeg vyžaduje žádnou alfu, nebilevelový obrázek, 8 bitů na komponentu, 1, 3 nebo 4 komponenty a neznámý nebo vyšší než 256 počet unikátních barev; picJpx vyžaduje nebilevelový obrázek s alespoň 8 bity na komponentu a 1 až 4 komponentami; picCcittGroup4 vyžaduje bilevelový obrázek bez alfy, 1 bit na komponentu a jedinou komponentu; picFlate přijme alespoň 1 bit na komponentu a alespoň 1 komponentu

Z mezi způsobilými kodeky vyhrává nejmenší kladná hodnota EncodedBytes a rozhodnutí hlásí OriginalBytes, SelectedBytes a SavedBytes

ReplaceOriginal je True jen tehdy, když vítězem není picKeepOriginal a SavedBytes dosáhne MinimumSavingBytes; jinak se rozhodnutí resetuje na picKeepOriginal s nulou ušetřených bajtů

Poznámky

Příklad

Decision := SelectPdfImageCodec(Candidate, [picJpeg, picJpx, picFlate], 1024);
if Decision.ReplaceOriginal then
  ReEncode := Decision.Codec;

Viz také

TPdf.OptimizeImages, BuildToUnicodeCMap, TPdf.ImageInfo