I am using “CGContextSetBlendMode” function in Quartz2D,but I don't understand the meaning of "kCGBlendModeColorDodge" constant.What's the formula of kCGBlendModeColorDodge?
问问题
711 次
2 回答
1
这是“颜色减淡”的公式:
// v1 and v2 are the RGBA pixel values for the two pixels
// "on top of each other" being blended
void someFunction(v1,v2) {
return Math.min(v1 + v2, 255);
}
来源是这个页面:
http://jswidget.com/blog/2011/03/11/image-blending-algorithmpart-ii/
编辑:
有两个闪避功能。一种是线性的,另一种是简单地称为“闪避”。以下是不同混合模式的更广泛列表:
混合模式公式在此页面上确认:
http://www.pegtop.net/delphi/articles/blendmodes/dodge.htm
...但在这个页面上,他们似乎通过反转公式来得到它:
http://www.simplefilter.de/en/basics/mixmods.html
您可能仍然需要弄清楚特殊情况,并记住“1”实际上是“255”。
于 2012-05-01T10:10:24.473 回答
0
尝试:
// t_component's range is [0...1]
t_component dodge_component(const t_component& a, const t_component& b) {
// note: saturate and limit to range
return a / (1.0 - b);
}
t_color dodge_color(const t_color& a, const t_color& b) {
t_color result;
for (each component in color_model) {
result.component[i] = dodge_component(a.component[i], b.component[i]);
}
return result;
}
于 2012-05-01T06:06:08.947 回答