在GPU和UIActivityIndi​​cator上使用CoreImage

时间:2018-08-27 01:10:35

标签: ios performance core-animation core-image

背景

我正在开发iOS照片编辑应用程序扩展。 现在,我的Core Image代码已按预期运行,现在我将注意力转移到性能改进上(这并不很快,至少在Simulator上是如此)。

为了在扩展程序应用其过滤器时(在编辑时同时显示“预览”,在提交编辑时同时显示最终结果)时保持应用程序响应,我在后台队列中进行渲染。

同时,我模态展示一个自定义视图控制器,该控制器显示一个活动指示器视图,以通知用户冗长的过程正在进行中

enter image description here

(仅用于预览渲染;对于最后的提交,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?

0 个答案:

没有答案