Преобразование числа в цвет в оттенках серого в Java - PullRequest
4 голосов
/ 06 мая 2010

Я пытаюсь выяснить, как я могу преобразовать число от 1 до 50 в цвет в оттенках серого, который можно использовать здесь:

g.setColor(MyGreyScaleColour);

1 будет самым светлым (белым), а 50 будет самым темным (черным).

например.

Color intToCol(int colNum)  
{  
code here  
}  

Есть предложения?

Ответы [ 2 ]

10 голосов
/ 06 мая 2010

Java использует цвета RGB, где каждый компонент (красный, зеленый, синий) находится в диапазоне 0-255. Когда все компоненты имеют одинаковое значение, вы получите бело-черно-серый цвет. Комбинации ближе к 255 будут более белыми, а ближе к 0 - черными. Приведенная ниже функция возвращает сероватый цвет с количеством белого, масштабированным в соответствии с вводом.

Color intToCol(int colNum)
{
  int rgbNum = 255 - (int) ((colNum/50.0)*255.0);
  return new Color (rgbNum,rgbNum,rgbNum);
}
8 голосов
/ 06 мая 2010

Что-то вроде:

float grey = (50 - colNum) / 49f;
return new Color(grey, grey, grey);
...