1

我有一个白色背景的 UIImage。我想用 alpha 透明像素替换白色背景/像素。我查看了 StackOverflow 上的其他问题以及 Quartz 文档,但还没有为这个问题找到一个连贯的“从头到尾”。这是怎么做到的?

4

2 回答 2

1

第一步是你需要定义某种“距离”函数来确定一个像素离白色有多远。然后,您需要定义一个距离阈值,低于该阈值的像素被视为白色。然后,您需要遍历图像的像素,根据您的距离和阈值将任何被认为是白色的像素更改为透明的。不过,主要技巧是提高效率……通过函数触摸像素会非常慢;您最好的选择是通过访问像素所在的内存缓冲区并逐步通过它们来直接触摸像素。

于 2010-05-12T03:58:10.803 回答
1
CGImageCreateWithMaskingColors

UIImage 包装了一个 CGImage。获取 CGImage,通过 CGImageCreateWithMaskingColors 运行它,然后根据结果创建新的 UIImage 或将结果分配回 UIImage。

于 2010-05-12T04:22:16.403 回答