我想通过将边界参数r指定为目标矩形,使用[CIContext render:toIOSurface:bounds:colorSpace:]
将CIImage渲染到IOSurface中的特定位置。将CIImage渲染到IOSurface中的特定矩形
根据文档,这应该可以工作,但CoreImage总是将图像渲染到IOSurface的左下角。
在我看来,像在CoreImage中的错误。
我可以通过将图像渲染到具有相同CIImage大小的中间IOSurface,然后将表面内容复制到另一个表面来克服此问题。 但是,我想避免在解决方案中分配和复制。
有什么建议吗?
此解决方案是按需渲染图像的一小部分非常缓慢。主要是因为CoreImage可能会将数据从CGDataProvider复制到GPU,并且在这种情况下,似乎它的自动缓存功能无法正常工作。 –