2013-05-14 107 views
0

我想用一种颜色对灰度图像着色。所以我有例如像素:RGB(34,34,34),我想用颜色:RGB(200,100,50)来获得新的RGB像素。所以我新来做这个图像中的每个像素。灰度图像上的颜色

白色像素的颜色为:RGB(200,100,50),深色像素的颜色比RGB(200,100,50)的颜色深。

所以结果是灰度黑色和选定的颜色,而不是黑色和白色。

我会编程这个硬核没有任何内置函数。

与此类似:Image或本:Image

回答

1

所有你需要做的是使用的灰的比率,以白色为乘数到你的颜色。我认为你会发现这比混合效果更好。

new_red = gray * target_red/255 
new_green = gray * target_green/255 
new_blue = gray * target_blue/255 
+0

是的,这给了完美的结果,因为混合使默认颜色更白。谢谢! – ButterBeast 2013-05-14 22:55:51

2

从你的描述我想你看的混合算法。

你需要的是一个blendPercentage(bP)。

新的红色= RED1 * BP + RED2 *(1 - BP)
新绿色=绿1 * BP + Green2的*(1 - BP)
新蓝色=蓝天* BP +蓝色2 *(1 - BP)

您的基本颜色是RGB 34 34 34;颜色混合是RGB 200 100 50
BlendingPercentage例如= 50% - > 0.5

因此:
新红色= 34 * 0.5 + 200 *(1 - 0.5)= 117
新绿色= 34 * 0.5 + 100 *(1 - 0.5)= 67
新蓝色= 34 * 0.5 + 50 *(1 - 0.5)= 42