CIImage和CIFilter实现细节

时间:2014-05-23 15:53:32

标签: ios performance core-graphics core-image cifilter

我对 Core Image 系统的底层实现有疑问。我在彼此之上添加了一些CIImages。不是那么多,大约5或6个。为了节省内存和性能,它们都会裁剪透明像素。然后在偏移处绘制它们,因此我使用@"CIAffineTransform"过滤器来定位它们。

CIFilter* moveFilter = [CIFilter filterWithName:@"CIAffineTransform"];

我的问题是: moveFilter.outputImage是否真的会生成新图片,或者是否会生成"渲染设置"以后用于绘制实际图像?

(如果是第一个,这意味着我有效地将图像渲染两次。这将是Core Image API中的一个巨大缺陷,很难相信Apple以这种方式创建它。)< / em>的

1 个答案:

答案 0 :(得分:1)

过滤器不会生成任何内容。 outputImage不生成任何内容。 CIImage不会生成任何内容。您所做的只是构建一系列过滤器。

在您明确要求它发生之前,渲染到位图并不会发生。您可以通过以下两种方式之一完成此操作:

  • 致电CIContext createCGImage:fromRect:

  • 实际上将基于CIImage的UIImage绘制到图形上下文中。