繁体   English   中英

CIImage和CIFilter实现细节

[英]CIImage and CIFilter implementation specifics

我对核心映像系统的基础实现有疑问。 我在彼此之上添加了一些CIImages 不多,大约5或6。 为了节省内存和性能,它们都裁剪了透明像素。 然后以偏移量绘制它们,因此我使用@"CIAffineTransform"过滤器定位它们。

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

我的问题是: moveFilter.outputImage是否真正生成新图像,还是生成稍后用于绘制实际图像的“渲染设置”?

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

筛选器不生成任何内容。 outputImage不会生成任何东西。 CIImage不生成任何东西。 您要做的只是构造一个过滤器链。

除非明确要求将其渲染,否则不会渲染到位图。 您可以通过以下两种方式之一执行此操作:

  • 调用CIContext createCGImage:fromRect:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM