我对 Core Image 系统的底层实现有疑问。我在彼此之上添加了一些CIImages
。不是那么多,大约5或6个。为了节省内存和性能,它们都会裁剪透明像素。然后在偏移处绘制它们,因此我使用@"CIAffineTransform"
过滤器来定位它们。
CIFilter* moveFilter = [CIFilter filterWithName:@"CIAffineTransform"];
我的问题是: moveFilter.outputImage是否真的会生成新图片,或者是否会生成"渲染设置"以后用于绘制实际图像?
(如果是第一个,这意味着我有效地将图像渲染两次。这将是Core Image API中的一个巨大缺陷,很难相信Apple以这种方式创建它。)< / em>的
答案 0 :(得分:1)
过滤器不会生成任何内容。 outputImage
不生成任何内容。 CIImage不会生成任何内容。您所做的只是构建一系列过滤器。
在您明确要求它发生之前,渲染到位图并不会发生。您可以通过以下两种方式之一完成此操作:
致电CIContext createCGImage:fromRect:
。
实际上将基于CIImage的UIImage绘制到图形上下文中。