PDFium Delphi Component Docs

Функция SelectPdfImageCodec

Модул: PDFium
Избира най-малкото допустимо повторно кодиране за едно изображение от измерените размери на кодеците

Синтаксис

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

Параметри

CandidateTPdfImageCodecCandidate
AllowedCodecsTPdfImageCodecs
MinimumSavingBytesInt64

Връщана стойност

TPdfImageCodecDecision

Описание

SelectPdfImageCodec е чист помощник за вземане на решение, който сравнява оценките 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;

Виж също

TPdf.OptimizeImages, BuildToUnicodeCMap, TPdf.ImageInfo