iOS:概述部分透明图像的不透明部分

我有一个应用程序,要求在部分透明的UI Image周围绘制一个纯黑色轮廓.不在图像的框架周围,而是围绕图像本身的所有不透明部分.即,想到一个透明的PNG,上面有一个不透明的白色“X” – 我需要用黑色勾勒出“X”.

为了使问题更棘手,在绘制轮廓之后,将调整原始图像的不透明度,但轮廓必须保持不透明 – 因此我生成的轮廓必须仅包括轮廓,而不包括原始图像.

我目前的技术是这样的:

>创建一个具有原始图像尺寸的新UIView.
>复制UIImage 4次并将重复项添加为UIView的子视图,每个UIImage从原始位置沿对角线偏移几个像素.
>将UIView转换为图像(通过典型的UIGraphicsGetImageFromCurrentImageContext方法).
>使用CGImageMaskCreate和CGImageCreateWithMask,从这个新图像中减去原始图像,这样只剩下轮廓.

有用.即使只有4个偏移图像,结果看起来也很不错.然而,它的效率非常低,并且在iPhone 4上造成了4秒的良好稳定延迟.

所以我需要的是一个很好,快速,有效的方法来实现同样的东西,iOS 4.0完全支持.

有什么好主意吗?

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...