我正在获取与该问题中的图像相同的图像:
暗黑色位于左下角,表示gid.x
和gid.y
都0
位于图像的该部分中。但是Metal文档(以及诸如此类的答案:metal中使用的坐标系是什么?)指出原点位于左上角,这意味着您应该在其中看到深黑色的角。
为什么似乎不是这样?
我使用CoreImage查看纹理。我CIImage
像这样:
CIImage(mtlTexture: kernelOutputTexture,
options: [CIImageOption.colorSpace: colorSpace])!
然后像这样在NSImageView中查看它:
let rep = NSCIImageRep(ciImage: image)
let nsImage = NSImage(size: rep.size)
nsImage.addRepresentation(rep)
“核心图像”使用的坐标系的原点位于图像的左下角。虽然您可能会怀疑包裹a时它会导致Metal的左上角原点MTLTexture
,但事实并非如此。
要创建CIImage
其方向与原始纹理的方向匹配的图像,可以请求已垂直翻转的新图像:
image = image.transformed(by: image.orientationTransform(for: .downMirrored))
该orientationTransform(for:)
方法在iOS 11.0和macOS 10.13中引入。使用它可能比组成自己的仿射变换更鲁棒,并且效率也很高,因为Core Image使用惰性评估,而不是物理移动或复制基础数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句