我正在使用优秀的GPUImage模糊我的观点(https://github.com/BradLarson/GPUImage)
然而,似乎头几次我模糊了观点,它真的很慢。经过几次模糊之后,速度要快得多。
为什么会这样,是否有办法预加载GPUImage框架,使其始终保持快速?
谢谢
GPUImageiOSBlurFilter *blurFilter = [GPUImageiOSBlurFilter new];
blurFilter.blurRadiusInPixels = 1;
blurFilter.saturation = 1.2;
blurFilter.downsampling = 4.0f;
blurredImage = [blurFilter imageByFilteringImage:blurredImage];发布于 2014-06-30 14:46:35
对于给定过滤器的第一次使用会有轻微的滞后,因为框架必须编译用于该过滤器的着色器。然后缓存这些着色器以供以后重用。特别是模糊将展示这一点,因为它们的着色器是为您使用的每个模糊半径生成的(因为在视频中重用时的性能原因,等等)。
尽管如此,确保您绝对需要在上面的代码中使用UIImages。-imageByFilteringImage:并不总是最快的方法,因为它必须接收一个UIImage,在幕后生成一个GPUImagePicture,将图像上传为纹理,处理图像,然后获取字节并从中重新创建一个UIImage。
如果希望更实时地显示调整图像和向屏幕显示预览的提要,最好手动创建GPUImagePicture并将输出发送到GPUImageView,每次更改筛选值时都会进行更新。
另外,不要在模拟器中进行任何性能测试。由于GPU某些部分的软件仿真,它表现出了奇怪的行为,我在那里处理东西时看到了奇怪的初始延迟。这在框架的原生Mac版本中并不存在,它只是一个仿真器的奇怪之处。
https://stackoverflow.com/questions/24445645
复制相似问题