THotPDF.OptimizeLoadedImagesByVisualCost Method
Voert een begrensd kwaliteitszoeken uit over geschikte geladen JPEG- en JPEG 2000-afbeeldingen en kiest de kandidaat met de laagste kosten die tegelijkertijd aan de kwaliteits- en besparingslimieten voldoet
Declaratie
function OptimizeLoadedImagesByVisualCost(
const Options: THPDFImageRecompressionCostOptions;
out AInfo: THPDFImageRecompressionCostInfo): Integer;
Kostenmodel
Elke gecodeerde kandidaat wordt gedecodeerd en vergeleken met de gedecodeerde bron via bemonsterde luma- en chroma-residuen op een genormaliseerde perceptuele foutschaal van 0 tot 100
Kandidaten boven MaximumPerceptualError of onder MinimumSavingsBytes worden vóór scoring verworpen
score = VisualErrorWeight * sqr(error / MaximumPerceptualError)
+ ByteCostWeight * (candidateBytes / sourceBytes)
De laagste score wint; bij gelijkspel heeft de kleinere gecodeerde grootte voorrang en daarna de hogere kwaliteit, zodat herhaalde uitvoeringen dezelfde uitvoer opleveren
THPDFImageRecompressionCostOptions
MinimumQuality, MaximumQuality en QualityStep definiëren de begrensde kwaliteitstests, en de maximale kwaliteit wordt altijd meegenomen ook al deelt de stap het bereik niet
SampleStride stuurt deterministische pixelsubsampling van 1 tot 64, terwijl de twee niet-negatieve gewichten visuele getrouwheid of compacte uitvoer kunnen prioriteren
THPDFImageRecompressionCostOptions.Default verkent kwaliteiten 30 tot en met 90 in stappen van 10, beperkt de perceptuele fout tot 3, vereist ten minste één bespaarde byte, bemonstert elke vierde pixel in elke dimensie en weegt visuele fout en bytekosten gelijk
THPDFImageRecompressionCostInfo
Het resultaat rapporteert gescande en geschikte afbeeldingstellers, JPEG- en JPEG 2000-herschrijvingen, coderingsproeven, afwijzingen op perceptuele fout en bytekosten, totalen van gekozen kwaliteit, de hoogste geaccepteerde perceptuele fout, byttotalen en de status van DeterministicSelection
Veiligheid
Afbeeldingsmaskers, colour-key-maskers, steunkleuren, Lab-afbeeldingen en niet-RGB ICCBased-fonts blijven ongewijzigd, terwijl converteerbare gekalibreerde RGB-bronnen een expliciete gekalibreerde uitvoerkleurruimte behouden
Annulering wordt gecontroleerd vóór elke afbeelding en elke codeerproef, en geen enkele bronstream wordt vervangen tenzij een volledige geaccepteerde kandidaat is gekozen