美文网首页iOS开发攻城狮的集散地
iOS Core Image Programming Guide

iOS Core Image Programming Guide

作者: emmet7life | 来源:发表于2018-06-05 16:04 被阅读5次

原文 Core Image Programming Guide

内容多,也有难度,没完全搞懂...,这里讲一些需要特别主要的点:

  1. CIContext 存储了很多状态信息,创建它的代价很大,不要每次渲染时都创建。设计一种重用它的机制来提高效率,如缓存或全局变量。【注】:不仅要缓存,还要在使用之前提前创建。

  2. 评估你的APP是否需要色彩管理,除非你需要它,否则不要使用它。Does Your App Need Color Management?

  3. 使用GPU上下文渲染CIImage对象时避免使用Core Animation动画。如果你需要同时使用两者,则可以同时设置使用CPU。

  4. 确保图像不超过CPU和GPU的限制。

    CIContext对象的图像大小限制取决于Core Image是使用CPU还是GPU。可使用 inputImageMaximumSizeoutputImageMaximumSize 检查限制值。

  5. 尽可能使用较小的图像。
    性能与输出像素数量成正比。你可以将Core Image渲染为更小的视图,纹理或帧缓存区。使用Core Graphics或Image I/O函数来裁剪或缩小比例,例如函数 CGImageCreateWithImageInRectCGImageSourceCreateThumbnailAtIndex

  6. UIImageView类最适合静态图像。如果你的APP需要获得最佳性能,请使用较低级别的API。

  7. 避免CPU和GPU之间不必要的纹理传输。

  8. 在应用内容比例因子之前,渲染到与源图像大小相同的矩形。

  9. 考虑使用更简单的过滤器,可以产生类似于算法过滤器的结果。例如,CIColorCube可以产生类似于CISepiaTone的输出,并且可以更高效地完成输出。

  10. 在iOS6.0及更高版本对YUV图像的支持。摄像机像素缓冲区本来就是YUV,但大多数图像处理算法需要RBGA数据。两者之间的转换需要一些花费。Core Image支持从CVPixelBuffer对象读取YUB并应用适当的颜色转换。

相关文章

网友评论

    本文标题:iOS Core Image Programming Guide

    本文链接:https://www.haomeiwen.com/subject/okwpsftx.html