【发布时间】:2010-10-12 06:47:59
【问题描述】:
我正在开发一个图像处理应用程序,该应用程序在从照片库加载的图像上覆盖径向渐变。
在屏幕上,我有一个滑块可以动态地增加/减小径向渐变的半径。我发现模拟器上的性能还不错,但在 iPhone 3G 或 3GS 上,移动滑块时重绘速度要慢得多。
我目前正在使用CGContextDrawRadialGradient 进行绘图。每次重绘我要遵循的步骤:
- 创建图形上下文:
UIGraphicsBeginImageContext(size); - 创建渐变对象:
CGGradientCreateWithColorComponents - 将图像(从照片库加载的照片)绘制到屏幕比例:
drawInRect - 设置为叠加混合模式:
CGContextSetBlendMode - 绘制渐变:
CGContextDrawRadialGradient - 使用 UIGraphicsGetImageFromCurrentImageContext(); 创建 UIimage;
UIGraphicsEndImageContext();- 将完成的图像绘制到屏幕上:
drawInRect。
有没有更快的绘图方法?也许使用 OpenGL?
任何建议/示例代码将不胜感激。
谢谢。
【问题讨论】: