2012-05-05 3 views
0

У меня есть двумерная матрица, которая хранит значения от 0 до 1. Я хочу наложить эти значения в качестве уровней серой шкалы.Преобразование значений от 0 до 1 в изображение в градациях серого (Java)

Если значение равно 1, его следует нарисовать как белый. Если значение равно 0, оно должно быть черным.

Как бы это сделать в java?

Я пробовал классы: Color и BufferedImage, но я не мог понять это.

ответ

1

Для создания изображения и установить пиксели:

final BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); 

for (int y = 0; y < height; y++) 
{ 
    for (int x = 0; x < width; x++) 
    { 
    image.setRGB(x, y, color); 
    } 
} 

color является INT, в данном случае, в формате ARGB (старший байт является альфа, а затем красные байт, зеленый байт, синие байты). Поскольку вы выполняете оттенки серого, вы хотите, чтобы значения R, G и B были одинаковыми. Вам не нужна альфа, поэтому вы должны установить этот верхний байт в 0xFF.

См: BufferedImage.setRGB()

+0

"Так как вы делаете в оттенках серого, который вы хотите R, G и B, чтобы иметь то же значение." Это был ответ, который я искал. Благодаря! – coolscitist