Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
交互式模糊UIImage和UIView,如iOS 8聚光灯_Ios_Objective C_Uiblureffect - Fatal编程技术网

交互式模糊UIImage和UIView,如iOS 8聚光灯

交互式模糊UIImage和UIView,如iOS 8聚光灯,ios,objective-c,uiblureffect,Ios,Objective C,Uiblureffect,iOS 8引入了一些非常时髦的交互模糊。最值得注意的是,当你拉下聚光灯时会出现交互式模糊,但打开和关闭Siri时也会出现动画(尽管这不是交互式的)。我只在另一个地方注意到了这种互动模糊:当下拉剖面视图时,官方推特应用程序(视差标题图像有时会缩放和模糊) 我曾尝试使用同时具有CoreImage和GPUImage的UISlider制作一些基本的动画(基于和苹果的答案,但似乎没有什么性能足以以交互方式制作模糊动画(即,将图像模糊为单个值可以快速工作一次,但帧速率不足以连续模糊) 如何实现这些方法,使其

iOS 8引入了一些非常时髦的交互模糊。最值得注意的是,当你拉下聚光灯时会出现交互式模糊,但打开和关闭Siri时也会出现动画(尽管这不是交互式的)。我只在另一个地方注意到了这种互动模糊:当下拉剖面视图时,官方推特应用程序(视差标题图像有时会缩放和模糊)

我曾尝试使用同时具有CoreImage和GPUImage的UISlider制作一些基本的动画(基于和苹果的答案,但似乎没有什么性能足以以交互方式制作模糊动画(即,将图像模糊为单个值可以快速工作一次,但帧速率不足以连续模糊)


如何实现这些方法,使其性能足以以交互方式模糊和取消模糊UIImage(理想情况下是UIView或CIContext快照)?

没有简单且唯一的方法,但如果遵循以下步骤和可选方法,则完全可行:

  • 最重要的是:对图像进行下采样。对于高斯模糊,基本分辨率不是很重要。如果只将采样分辨率降低到一半,数据量将减少到四分之一

  • 定义结束目标模糊半径

  • 借助C函数检索设备的体系结构,并根据处理能力为不同的体系结构使用不同的增量饱和参数值

  • 使用Apple提供的库创建模糊,该库带有与交互参数的步长值有关的半径步长(例如,KVO to
    contentOffset
    属性)。调度\u async,不要忘记将模糊图像回调到主队列

  • 上述方法几乎可以肯定地满足从arm7开始的所有体系结构,但您可能仍然存在一些arm7-iPhone4S的问题

  • 如果仍然存在问题,如前面提到的arm7,则将所需的
    contentOffset
    更改加倍,以使用下一个半径进行下一次模糊。然后,与其更改UIImageView上的image属性,不如使用新的模糊UIImage创建新的UIImageView,并在创建下一个模糊页面的时间段内将alpha通道从0淡入到1

  • 您可能会使用很多技巧,比如为整个交互比例一个接一个地创建所有模糊图像,将它们缓存在集合中,并在第6点中描述的方法中使用它们


  • 如果动画不是交互式的,而是在特定帧中计时,那么还有许多其他技术

    拍摄你的视图截图,然后模糊截图@这里的NickWilkerson关键字是交互式的。我链接到的两篇文章都是这样做的,但它们的性能不够,除非在GCD dispatch_async中运行,而且它不是线程安全的。在开始动画之前,如何预先计算帧(如果我正确理解您的问题,可以使用不同的模糊级别),这样你就可以在动画中使用它们了?@goldmine有趣的想法。。。用什么制作动画?在reddit上找到的,可能就是你要找的