2013-04-08 9 views
0

Это формула, которую мы используем для преобразования RGB в соответствующем формате CMY:RGB в CMY цветовой модели с использованием C++

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 
+0

Сделать массив и поместить в него значения? –

+0

Что вы подразумеваете под хранением в массиве? Как хранятся значения RGB в коде? – nommyravian

+0

Кроме того, использование целых чисел не даст вам значения _between_ '0' и' 1'. Это даст вам _имя_ 'или' 1'. –

ответ

1
#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 уже инициализирован в массив.