Это формула, которую мы используем для преобразования RGB в соответствующий формат CMY:
C = 1 - ( R / 255 )
M = 1 - ( G / 255 )
Y = 1 - ( B / 255 )
Я пытаюсь отобразить изображение CMY после применения этой формулы к значениям RGB исходного изображения, но получаемые в результате значения находятся в диапазоне от 0 до 1. Я не думаю, что этот диапазон можно использовать для отображения изображения.
Как сохранить значения CMY в виде массива, чтобы их можно было использовать для отображения изображения?
Нужно ли для этого масштабировать диапазон от 0-1 до 0-255?
Если мне нужно масштабировать то, почему эта формула используется, я могу напрямую использовать:
C = 255 - R
M = 255 - G
Y = 255 - B
#include <iostream>
using namespace std;
int main() {
float C = 1.0f - (R / 255.0f);
float M = 1.0f - (G / 255.0f);
float Y = 1.0f - (B / 255.0f);
float cmyArray[3] = {C, M, Y};
return 0;
}
Этот код будет хранить C
, M
, Y
переменные как floating points
а затем создать массив для 3 floating points
быть втянутым. В этом случае он начинается со значений C
, M
, а также Y
уже инициализированы в массив.
Как это: http://liveworkspace.org/code/2rpyRF$ 2
Если вам нужно много значений, вы можете обратиться к n-й группе cmy следующим образом: n*3 + x
где x равно 0 для c, 1 для m и 2 для y.