use*_*702 4 cocoa-touch alpha colors uicolor
这种颜色
[UIColor colorWithRed:75.0/255.0
green:215.0/255.0
blue:100.0/255.0
alpha:0.5]
Run Code Online (Sandbox Code Playgroud)
而这一个,具有不同的RGB值,没有透明度,
[UIColor colorWithRed:165.0/255.0
green:235.0/255.0
blue:177.0/255.0
alpha:1]
Run Code Online (Sandbox Code Playgroud)
在白色背景上看起来完全一样.
我如何从第一个UIColor到第二个UIColor?
那么,答案将特别依赖于了解背景颜色.这样的东西可以工作,假设backgroundColor并且sourceColor是UIColors:
float blend(float src, float srcAlpha, float background) {
return (background + src * srcAlpha) / 2;
}
UIColor *result = [UIColor colorWithRed:blend([sourceColor red], [sourceColor alpha], [backgroundColor red])
green:blend([sourceColor green], [sourceColor alpha], [backgroundColor green])
blue:blend([sourceColor blue], [sourceColor alpha], [backgroundColor blue])
alpha:1.0f];
Run Code Online (Sandbox Code Playgroud)
虽然数字不等于您的示例,但这是一个通用的合理混合函数.没有更多的例子,很难知道你的例子的曲线是什么.您正在使用的混合功能似乎对每个颜色分量使用不同的比率,或者您可能通过屏幕的颜色配置文件调整结果颜色值的测量值.
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |