Conversione di un numero per un colore in scala di grigi in Java
Domanda
Sto cercando di capire come posso convertire un numero compreso tra 1 e 50 a un colore in scala di grigi che potrebbe essere utilizzato qui:
g.setColor(MyGreyScaleColour);
1 sarebbe più chiaro (bianco) e 50 sarebbe più scuro (nero).
es.
Color intToCol(int colNum)
{
code here
}
Qualche suggerimento?
Soluzione
Java utilizza i colori RGB in cui ogni componente (rosso, verde, blu) varia 0-255. Quando tutti i componenti hanno lo stesso valore, si finisce con un colore bianco-nero-grigio. Le combinazioni più vicino al 255 sarebbe più bianca e più vicino a 0 sarebbe stato tutto nero. La funzione qui sotto restituirebbe un colore grigiastro, con la quantità di bianco in scala di conseguenza con l'ingresso.
Color intToCol(int colNum)
{
int rgbNum = 255 - (int) ((colNum/50.0)*255.0);
return new Color (rgbNum,rgbNum,rgbNum);
}
Altri suggerimenti
Qualcosa di simile:
float grey = (50 - colNum) / 49f;
return new Color(grey, grey, grey);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow