假设我有4个位图,例如CMYK,所有这些位图都是1bit /像素,并且具有不同的颜色,并且我想将它们转换为8bit /色(24bpp)位图,我该怎么做?
如果数据如下所示:
// the Cyan separation CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC ... // the magenta separation, and so on.. MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM ...
例如,青色的RGB值为(0,255,255),在像素0(第一个像素)处,我的值为1(开),洋红色的RGB值为(255,255,0),并且像素,值为1。第一个RGB像素是什么样的?会是这样吗?
BBBB BBBB GGGG GGGG RRRR RRRR // would this 3-byte sequence actually be 255,255,255 // because the cyan has (0,255,255) and the // magenta has (255,255,0)?
谢谢,只是对如何将1bit的间隔转换为8bit图像感到困惑。
CMYK是一种辅助颜色系统,而RGB是一种附加颜色系统。
如果CMY(K)值为(1.0,1.0,1.0),则为黑色,而RGB值为(255,255,255),则为白色。
青色+洋红色=蓝色:(0,255,255)+(255,0,255)!=(0,0,255)。但不完全是,因为我们正在谈论不同的色彩系统。
您需要首先在CMYK中构造像素,然后将其转换为RGB,可以通过执行 近似(R, G, B) = (1-C, 1-M, 1-Y)。
(R, G, B) = (1-C, 1-M, 1-Y)
为了1位值转换为一个8位的值,你只需要每一个变换0成0x00每1到0xFF:乘bitValue用0xFF。
0
0x00
1
0xFF
bitValue