Contrasto

L' aumento o la diminuzione del contrasto non è altro che l' amplificazione o riduzione del valore di ciascun canale RGB del colore.
Il metodo è quello di trovare una formuletta (arbitraria, anche diversa dalla mia) che, dato un parametro che indichi il valore del contrasto, amplifichi (aumentando o riducendo) il valore iniziale.
L' algoritmo seguente prevede l' uso di un parametro (una sorta di percentuale):
-100 <= paramContrasto <= 100
PER OGNI pixel
{ PER OGNI canaleRGB
{ canaleContrasto = {[(canaleRGB / 255) - 0.5] * [1 + (paramContrasto / 100)]^2 + 0.5} * 255
SE canaleContrasto < 0
ALLORA canaleContrasto = 0
SE canaleContrasto > 0
ALLORA canaleContrasto = 255
canaleRGB = canaleContrasto
}}La formula che ho usato per determinare il valore della variabile canaleContrasto non è difficile, fa uso dell' elevamento alla 2° potenza in modo da accentuare di molto ciascun canale, in base al parametro del contrasto (paramContrasto) che fa da percentuale (all' incirca).

Anche in questo caso, i nuovi valori ottenuti, prima di essere assegnati ai vari canali RGB, vengono limitati a 0 o 255 nel caso fuoriescano dall' intervallo di valori accettati 0-255.