2013-04-08 72 views
0

这是我们使用将RGB转换为相应的CMY格式下式:RGB到CMY用C++颜色模型

C = 1 - (R/255) 
M = 1 - (G/255) 
Y = 1 - (B/255) 

我试图应用该公式的原始的RGB值后显示CMY图像图像,但我得到的结果值在0和1之间。我不认为这个范围可以用来显示图像。

如何将CMY值存储为数组,以便它们可用于显示图像? 我是否必须将0-1的范围缩放到0-255?

如果非要规模那么,为什么用这个公式,我可以直接使用:

C = 255 - R 
M = 255 - G 
Y = 255 - B 
+0

制作一个数组并将其中的值? – 2013-04-08 05:44:07

+0

你是什么意思,通过存储在数组中?如何在代码中存储RGB值? – nommyravian 2013-04-08 05:45:06

+0

另外,使用整数不会让你的值在'0'和'1'之间。它会给你_either_'0'或'1'。 – 2013-04-08 05:48:07

回答

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; 
} 

此代码将所述CMY变量存储为floating points,然后创建阵列3 floating points在被推动,在这种情况下,它开始与值CM,并已初始化Y进入阵列。