GrayScale Pixels / Соотношение значений - PullRequest
0 голосов
/ 04 января 2019

Мне нужно сохранить много данных, и я решил сохранить их как изображение, в котором

каждый пиксель будет иметь значение в [0,1] (включительно). {0-> white / 1-> black).

Как я могу закодировать значение [0,1] в цвет пикселя?

1 Ответ

0 голосов
/ 04 января 2019

Обычно в данных изображения используются R, G, B, которые хранятся в виде байтов без знака (например, они имеют значение от 0 до 255). Поэтому вам нужно умножить значение [0,1] на 255, чтобы получить соответствующее значение в пикселях. В зависимости от того, как вы создаете свое изображение, вам может понадобиться это как байтовый массив или как объект Color:

float colorvalue = 0.6f;
// as a byte array:
byte[] rgb = new byte[3];
rgb[0] = (byte)(colorvalue * 255);
rgb[1] = (byte)(colorvalue * 255);
rgb[2] = (byte)(colorvalue * 255);
//as a color:
Color newcol = Color.FromArgb((int)(colorvalue * 255), (int)(colorvalue * 255), (int)(colorvalue * 255));
...