【发布时间】:2019-08-25 07:05:49
【问题描述】:
我正在通过 UIImagePickerController 从照片库中加载图像,并使用该图像设置 SCNPlane 的材质:
let imageView = UIImageView(image: image)
imageView.contentMode = .scaleAspectFit
plane.firstMaterial?.diffuse.contents = imageView
对于某些图像,这可以正常工作,完全没有问题,图像可以正常显示。然而,对于其他图像,平面的纹理显示为完全黑色,并且 Xcode 打印“不支持的 IOSurface 格式:0x00000000”。似乎只有屏幕截图导致了这种情况,尽管一些屏幕截图可以正常工作。
【问题讨论】:
-
由于内容可以接受各种类型的输入 (developer.apple.com/documentation/scenekit/scnmaterialproperty/…),您是否尝试将 UIColor 与图像模式一起使用?还是根据图像创建纹理对象?或者提供图片路径?
-
您使用的是 .jpg 还是 .png? iOS 希望你使用 .png 而不是 .jpg。
-
我查看了一些图像的扩展名,那些不工作的实际上是 PNG,而 JPEG 工作。
-
@YamingLin 所以,jpeg 似乎可以正常工作,但也有一些 png 可以工作,而另一些则不能。你知道为什么会这样吗?谢谢。
标签: ios swift uiimage scenekit arkit