THotPDF.OptimizeLoadedImagesByVisualCost Method

Esegue una ricerca di qualità limitata sulle immagini JPEG e JPEG 2000 caricate idonee e adotta il candidato di costo minimo che soddisfa sia i limiti di qualità sia quelli di risparmio

Dichiarazione

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

Modello di costo

Ogni candidato codificato viene decodificato e confrontato con la sorgente decodificata tramite residui campionati di luma e chroma su una scala normalizzata di errore percettivo da zero a 100

I candidati oltre MaximumPerceptualError o sotto MinimumSavingsBytes vengono rifiutati prima dello scoring

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

Vince il punteggio più basso, seguito dalla dimensione codificata minore e poi dalla qualità più alta in caso di parità, così esecuzioni ripetute producono lo stesso output

THPDFImageRecompressionCostOptions

MinimumQuality, MaximumQuality e QualityStep definiscono le prove di qualità limitate, e la qualità massima è sempre inclusa anche quando lo step non divide l'intervallo

SampleStride controlla il sottocampionamento deterministico dei pixel da 1 a 64, mentre i due pesi non negativi lasciano al chiamante la scelta tra fedeltà visiva e output compatto

THPDFImageRecompressionCostOptions.Default cerca la qualità da 30 a 90 con step di 10, limita l'errore percettivo a 3, richiede un byte risparmiato, campiona un pixel su quattro in ogni dimensione e pesa allo stesso modo errore visivo e costo in byte

THPDFImageRecompressionCostInfo

Il risultato riporta il numero di immagini scansionate e idonee, le riscritture JPEG e JPEG 2000, le prove di codifica, i rifiuti per errore visivo e costo in byte, i totali delle qualità selezionate, l'errore percettivo massimo accettato, i totali in byte e lo stato DeterministicSelection

Sicurezza

Le maschere immagine, le maschere colour-key, i colori spot, le immagini Lab e le sorgenti ICCBased non RGB restano invariate, mentre le sorgenti RGB calibrate convertibili conservano uno spazio colore di output calibrato esplicito

La cancellazione viene verificata prima di ogni immagine e prova di codifica, e nessuno stream sorgente viene sostituito se non è stato selezionato un candidato accettato completo

Ottimizzazione di risorse e immagini