UIImage上的iOS alpha问题

时间:2012-07-11 05:11:58

标签: ios alpha

我遇到了一些麻烦,因为在iPhone上获取原始数据和编辑UIImage的alpha值会产生奇怪的结果。如果触摸的像素颜色不是全触摸黑色,则看起来不像完整的alpha。结果如下:

开始未经修改

Unmodified

灰色触摸将所有灰色变为alpha = 0

Touched

然后,如果我触摸奇怪的粉饰区域(假设为alpha 0),它会将所有完全黑色的像素转换为alpha 0,即使在技术上也是如此

//没有链接没有足够的代表//

有没有人知道发生了什么?它与预乘的alpha有关吗?或者也许是我编辑价值观的方式。如果您需要查看代码,请告诉我,我将对其进行编辑。

作为一个额外的注释,按下粉饰区域时第二次灰色区域,而不是alpha只是0,所有其他值都等于0,当它们应该保持原样时。

1 个答案:

答案 0 :(得分:1)

是的,通过实验,反复试验和剪切运气,我已经发现问题的解决方案,我不知道原因,但这解决了它。

获取原始数据时,我使用此函数在上下文中获取位图信息

CGBitmapInfo imageInfo = CGImageGetBitmapInfo(imageRef);

并使用相同的变量然后从编辑的原始数据创建CGImage。因此疯狂

修复它的方法不是在从原始数据创建时使用“imageInfo”,而是使用标记kCGImageAlphaLast

修正了,但不知道为什么会这样。