如何解决有关图像的Alpha值的问题
| // Make half-transparent grey,the background color for the layer
UIColor *Light_Grey
= [UIColor colorWithRed : 110/255.0
green : 110/255.0
blue : 110/255.0
alpha : 0.5];
// Get a CGColor object with the same color values
CGColorRef cgLight_Grey = [Light_Grey CGColor];
[boxLayer setBackgroundColor : cgLight_Grey];
// Create a UIImage
UIImage *layerImage = [UIImage imageNamed : @\"Test.png\"];
// Get the underlying CGImage
CGImageRef image = [layerImage CGImage];
// Put the CGImage on the layer
[boxLayer setContents : (id) image];
考虑上面的示例代码段。
UIColor * Light_Grey的alpha值设置为0.5。我的问题是:无论如何,我可以设置CGImageRef图像的Alpha值吗?
我问这个问题的原因是,即使boxLayer的alpha值为0.5,但在BoxLayer顶部设置的任何图像似乎都具有alpha默认值1,这将掩盖图像正下方的所有内容。
希望对此有所了解的人可以提供帮助。
解决方法
看起来您可以使用
CGImageCreate
进行复制,并使用解码数组重新调整Alpha值(例如0.0-0.5)
解码
图像的解码数组。如果你
不想允许重新映射
图片的颜色值,将NULL传递给
解码数组。对于每种颜色
图片色彩空间中的成分
(包括alpha分量),
解码数组提供一对值
表示上限和下限
一个范围。例如,解码数组
用于RGB颜色的源图像
空间总共包含六个条目,
由一对红色组成,
绿色和蓝色。当图像是
渲染后,Quartz使用线性
转换以映射原始
组件值转换为相对数
在您指定的范围内
适用于目标颜色
空间。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。