我正在开发iOS照片编辑应用程序扩展。 现在,我的Core Image代码已按预期运行,现在我将注意力转移到性能改进上(这并不很快,至少在Simulator上是如此)。
为了在扩展程序应用其过滤器时(在编辑时同时显示“预览”,在提交编辑时同时显示最终结果)时保持应用程序响应,我在后台队列中进行渲染。
同时,我模态展示一个自定义视图控制器,该控制器显示一个活动指示器视图,以通知用户冗长的过程正在进行中>
(仅用于预览渲染;对于最后的提交,Photos.app将接管并显示其自己的活动指示器视图)
通读《 Core Image编程指南》中的“ Getting the Best Performance”部分,我发现了以下建议:
在使用GPU上下文渲染CIImage对象时,避免使用Core Animation动画。
如果需要同时使用两者,则可以将两者都设置为使用CPU。
这让我开始思考; UIKit是否(尤其是UIActivityIndicatorView
)不使用Core Animation?
关于最终渲染,我仍然考虑使用CPU:据报道,它似乎可以产生更高质量的结果,并且GPU具有尺寸限制,这些尺寸限制很容易被照片中通常显示的原始图像的大小所淹没。库。
但是对于屏幕尺寸的预览渲染,我更喜欢使用GPU。
我可以在呈现出模态视图控制器之后( )立即开始呈现(并避免重叠呈现过渡),但是活动指示器需要在GPU呈现过程中进行动画处理。
在将CoreImage滤镜应用于GPU上的图像时,如何提供动画反馈?
类似(如果我没记错的话,但不重复)问题:How do you run Core Animation and Core Image together on the CPU?