我正在学习如何绘制 UIImages 和 CGImages,使用 CIFilters 等。为了测试我的知识,我制作了一个带有滑块的小型测试应用程序,它以编程方式更改药水精灵的颜色并将其显示在屏幕上(使用 CIHueBlendMode CIFilter)。完成后,我想清理相对冗长的代码,并注意到我可以使用 UIImage 的 imageWithCIImage: 方法直接从 CIImage 到 UIImage,而不是从过滤器输出的 CIImage 到 CGImage 再到 UIImage。
但是,当我尝试使用 drawInRect: 绘制生成的 UIImage 时,没有绘制任何内容。当然,通过 CGImage 阶段可以纠正这一点。我对此的理解是,从 CIImage 制作 UIImage 会导致 UIImage 中的 NULL CGImage 属性,该属性用于 drawInRect:。它是否正确?如果是这样,有没有比通过 CGImage 和 UIImage 更好的方法来显示 CIImage?我可以只画一个用 CIImage 制作的 CGImage,但这会翻转图像,这会导致另一个问题。目前,我首先将我绘制的任何内容包装在 UIImage 中以处理翻转。还有其他更有效的方法吗?
太长; 未读:有没有更好的方法来绘制 CIImage,而不是将它变成一个 CGImage,然后是一个 UIImage 并绘制它?绘制 CGImage 时处理翻转的最佳方法是什么?
感谢任何可以回答我的一些问题的人。:)