我正在开发一个图像处理应用程序,该应用程序在从照片库加载的图像上叠加径向渐变。屏幕上有一个滑块,可以动态地增加或减小径向渐变的半径。我发现模拟器上的性能非常好,但在 iPhone 3G 或 3GS 上移动滑块时重新绘制速度要慢得多。
我目前使用 CGContextDrawRadialGradient 进行绘制。每次重新绘制时,我遵循以下步骤:
1. 创建图形上下文:UIGraphicsBeginImageContext(size); 2. 创建渐变对象:CGGradientCreateWithColorComponents 3. 将图片(从照片库加载的照片)绘制到屏幕比例上:drawInRect 4. 设置为叠加混合模式:CGContextSetBlendMode 5. 绘制渐变:CGContextDrawRadialGradient 6. 使用 UIGraphicsGetImageFromCurrentImageContext() 创建 UIimage; 7. UIGraphicsEndImageContext(); 8. 将完成的图像绘制到屏幕上:drawInRect。
是否有更快的绘制方法?也许可以使用 OpenGL?
如果您有任何建议或示例代码,将不胜感激。
谢谢。
我目前使用 CGContextDrawRadialGradient 进行绘制。每次重新绘制时,我遵循以下步骤:
1. 创建图形上下文:UIGraphicsBeginImageContext(size); 2. 创建渐变对象:CGGradientCreateWithColorComponents 3. 将图片(从照片库加载的照片)绘制到屏幕比例上:drawInRect 4. 设置为叠加混合模式:CGContextSetBlendMode 5. 绘制渐变:CGContextDrawRadialGradient 6. 使用 UIGraphicsGetImageFromCurrentImageContext() 创建 UIimage; 7. UIGraphicsEndImageContext(); 8. 将完成的图像绘制到屏幕上:drawInRect。
是否有更快的绘制方法?也许可以使用 OpenGL?
如果您有任何建议或示例代码,将不胜感激。
谢谢。