E 'wiki comunità, in modo che si può risolvere questo terribile, terribile messaggio.
Grrr, no LaTeX. :) Immagino che dovrò solo fare il meglio che posso.
Definizione:
Abbiamo un'immagine (PNG o un altro formato senza perdita di dati *) denominata A della dimensione A x di A y . Il nostro obiettivo è ridimensionarlo di p = 50% .
Immagine ( "matrice") B sarà una versione "direttamente in scala" di A . Avrà B s = 1 numero di passi.
A = B B s = B 1
Immagine ( "matrice") C sarà una versione "incrementale in scala" di A . Avrà C s = 2 numero di passaggi.
A ≅ C C s = C 2
The Fun Stuff:
A = B 1 = B 0 × p
C 1 = C 0 × p 1 ÷ C s
A ≅ C 2 = C 1 × p 1 ÷ C s
Vedi quei poteri frazionari? Teoricamente degraderanno la qualità con immagini raster (i raster all'interno dei vettori dipendono dall'implementazione). Quanto? Lo scopriremo dopo ...
La roba buona:
C e = 0 se p 1 ÷ C s ∈ ℤ
C e = C s se p 1 ÷ C s ∉ ℤ
Dove e rappresenta l'errore massimo (scenario peggiore), a causa di errori di arrotondamento per intero.
Ora, tutto dipende dall'algoritmo di downscaling (Super Sampling, Bicubic, Lanczos sampling, Il prossimo più vicino, ecc.).
Se stiamo usando il vicino più vicino (l' algoritmo peggiore per qualsiasi qualità), il "vero errore massimo" ( C t ) sarà uguale a C e . Se stiamo usando uno degli altri algoritmi, diventa complicato, ma non sarà così male. (Se vuoi una spiegazione tecnica sul perché non sarà così male come il vicino più vicino, non posso darti una causa perché è solo un'ipotesi. NOTA: Ehi matematici! Risolvilo!)
Ama il tuo prossimo:
Facciamo un "array" di immagini D con D x = 100 , D y = 100 e D s = 10 . p è sempre lo stesso: p = 50% .
Algoritmo Neighbor più vicino (definizione terribile, lo so):
N (I, p) = mergeXYDuplicates (floorAllImageXYs (I x, y × p), I) , dove vengono moltiplicati solo gli x, y stessi; non i loro valori di colore (RGB)! So che non puoi davvero farlo in matematica, ed è per questo che non sono IL MATEMATICO LEGGENDARIO della profezia.
( mergeXYDuplicates () mantiene solo gli "elementi" x, y più in basso a sinistra nell'immagine originale I per tutti i duplicati che trova e scarta il resto.)
Prendiamo un pixel casuale: D 0 39,23 . Quindi applicare D n + 1 = N (D n , p 1 ÷ D s ) = N (D n , ~ 93,3%) più e più volte.
c n + 1 = piano (c n × ~ 93,3%)
c 1 = piano ((39,23) × ~ 93,3%) = piano ((36.3,21.4)) = (36,21)
c 2 = piano ((36,21) × ~ 93,3%) = (33,19)
c 3 = (30,17)
c 4 = (27,15)
c 5 = (25,13)
c 6 = (23,12)
c 7 = (21,11)
c 8 = (19,10)
c 9 = (17,9)
c 10 = (15,8)
Se avessimo fatto una semplice riduzione solo una volta, avremmo:
b 1 = piano ((39,23) × 50%) = piano ((19.5,11.5)) = (19,11)
Mettiamo a confronto B e C :
b 1 = (19,11)
c 10 = (15,8)
Questo è un errore di (4,3) pixel! Proviamo con i pixel finali (99,99) e consideriamo la dimensione effettiva dell'errore. Non farò di nuovo tutta la matematica qui, ma ti dirò che diventa (46,46) , un errore di (3,3) da come dovrebbe essere, (49,49) .
Uniamo questi risultati con l'originale: l '"errore reale" è (1,0) . Immagina se questo accade con ogni pixel ... potrebbe finire per fare la differenza. Hmm ... Beh, probabilmente c'è un esempio migliore. :)
Conclusione:
Se la tua immagine è originariamente di grandi dimensioni, non importa, a meno che non esegui più downscales (vedi "Esempio reale" di seguito).
Peggiora di un massimo di un pixel per passaggio incrementale (in basso) nel vicino più vicino. Se esegui dieci downscales, l'immagine sarà leggermente degradata in termini di qualità.
Esempio nel mondo reale:
(Fare clic sulle miniature per ingrandirla.)
Ridimensionato dell'1% in modo incrementale usando il Super Sampling:

Come puoi vedere, il Super Sampling lo "sfoca" se applicato più volte. Questo è "buono" se stai facendo un downscale. Questo è male se lo stai facendo in modo incrementale.
* A seconda dell'editor e del formato, questo potrebbe potenzialmente fare la differenza, quindi lo mantengo semplice e lo chiamo senza perdita.
(100%-75%)*(100%-75%) != 50%. Ma credo di sapere cosa intendi, e la risposta è "no", e non sarai davvero in grado di dire la differenza, se ce ne sono.