2011-01-06 72 views
0

我想要在Paint.net中应用相同的亮度滤镜如何以编程方式应用Paint.NET光度过滤器?

基本上,我想要计算亮度分量并将其设置为零。 这里是我试过到目前为止:

我有很多问题使用这种方法。有时,当我转换回RGB时,某些组件不在0-255范围内。此外,当我将曲线设置为y = 0时,我无法获得确切的Paint.net光度效果。

Paint.net不是开源代码。你能帮我理解它的作用吗?

谢谢。

P.S .:我在C#中编程。

回答

0

我相信他们只是从RGB值中增加/减去一个常量。

R' = max(min(255, R+diff), 0); 
G' = max(min(255, G+diff), 0); 
B' = max(min(255, B+diff), 0); 

虽然,使用您提到的方法可能会产生更正确的结果。获得超出0-255范围的值是可以预料的,你必须处理它。你可能也想在你的计算中考虑伽马校正。