我遇到了一些麻烦,因为在iPhone上获取原始数据和编辑UIImage
的alpha值会产生奇怪的结果。如果触摸的像素颜色不是全触摸黑色,则看起来不像完整的alpha。结果如下:
开始未经修改
灰色触摸将所有灰色变为alpha = 0
然后,如果我触摸奇怪的粉饰区域(假设为alpha 0),它会将所有完全黑色的像素转换为alpha 0,即使在技术上也是如此
//没有链接没有足够的代表//
有没有人知道发生了什么?它与预乘的alpha有关吗?或者也许是我编辑价值观的方式。如果您需要查看代码,请告诉我,我将对其进行编辑。
作为一个额外的注释,按下粉饰区域时第二次灰色区域,而不是alpha只是0,所有其他值都等于0,当它们应该保持原样时。
答案 0 :(得分:1)
是的,通过实验,反复试验和剪切运气,我已经发现问题的解决方案,我不知道原因,但这解决了它。
获取原始数据时,我使用此函数在上下文中获取位图信息
CGBitmapInfo imageInfo = CGImageGetBitmapInfo(imageRef);
并使用相同的变量然后从编辑的原始数据创建CGImage。因此疯狂
修复它的方法不是在从原始数据创建时使用“imageInfo”,而是使用标记kCGImageAlphaLast
。
修正了,但不知道为什么会这样。