2

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

开始未修改

未修改

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

感动

然后,如果我触摸应该是 alpha 0 的怪异粉刷区域,它会将所有完全黑色的像素变为 alpha 0,即使在技术上

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

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

作为附加说明,第二次按下白色区域时的灰色区域,而不是 alpha 只是 0,所有其他值都等于 0,而它们应该保持原样。

4

1 回答 1

1

是的,通过实验、反复试验和运气,我找到了问题的解决方案,我不知道原因,但这解决了它。

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

CGBitmapInfo imageInfo = CGImageGetBitmapInfo(imageRef);

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

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

已修复,但不知道为什么。

于 2012-07-12T04:05:48.707 回答