Método THotPDF.OptimizeLoadedImagesByVisualCost

Ejecuta una búsqueda de calidad acotada sobre las imágenes JPEG y JPEG 2000 cargadas elegibles y adopta el candidato de menor costo que cumple a la vez los límites de calidad y de ahorro

Declaración

function OptimizeLoadedImagesByVisualCost(
    const Options: THPDFImageRecompressionCostOptions;
    out AInfo: THPDFImageRecompressionCostInfo): Integer;

Modelo de costo

Cada candidato codificado se decodifica y se compara con la fuente decodificada mediante residuos muestreados de luma y croma sobre una escala de error perceptual normalizada de 0 a 100

Los candidatos por encima de MaximumPerceptualError o por debajo de MinimumSavingsBytes se descartan antes de la puntuación

score = VisualErrorWeight * sqr(error / MaximumPerceptualError)
      + ByteCostWeight * (candidateBytes / sourceBytes)

Gana el puntaje más bajo; ante empates se prefiere el tamaño codificado menor y luego la calidad más alta, de modo que ejecuciones repetidas producen la misma salida

THPDFImageRecompressionCostOptions

MinimumQuality, MaximumQuality y QualityStep definen las pruebas de calidad acotadas, y la calidad máxima siempre se incluye aunque el paso no divida el rango

SampleStride controla el submuestreo determinista de píxeles de 1 a 64, mientras que los dos pesos no negativos permiten priorizar la fidelidad visual o una salida compacta

THPDFImageRecompressionCostOptions.Default explora calidades de 30 a 90 en pasos de 10, limita el error perceptual a 3, exige al menos un byte ahorrado, muestrea cada cuarto píxel en cada dimensión y pondera por igual el error visual y el costo en bytes

THPDFImageRecompressionCostInfo

El resultado reporta los conteos de imágenes escaneadas y elegibles, las reescrituras JPEG y JPEG 2000, las pruebas de codificación, los rechazos por error visual y por costo en bytes, los totales de calidad seleccionada, el error perceptual máximo aceptado, los totales de bytes y el estado de DeterministicSelection

Seguridad

Las máscaras de imagen, las máscaras colour-key, los colores spot, las imágenes Lab y las fuentes ICCBased no RGB se mantienen sin cambios, mientras que las fuentes RGB calibradas convertibles conservan un espacio de color de salida calibrado explícito

La cancelación se comprueba antes de cada imagen y de cada prueba de codificación, y no se reemplaza ningún stream de origen salvo que se haya seleccionado un candidato aceptado completo

Optimización de recursos e imágenes