MTKTextureLoader.newTexture在压缩的PNG上失败

问题描述

我拍了一张随机截图来演示这一点。我在viewDidLoad中有此代码

let TextureLoader = MTKTextureLoader(device: Device)
do {
    Texture = try TextureLoader.newTexture(URL: Bundle.main.url(forResource: "Texture",withExtension: "png")!)
} catch let Error {
    print(Error)
}

我有2种纹理:

4字节1

The 4 kb one

和600字节1

enter image description here

第二个是PNG压缩服务TinyPNG制作的。但是,即使quicklook,finder和浏览器可以识别压缩的压缩文件,也无法通过MTKTextureLoader.newTexture()加载。它说decoding Failed

为什么Metal的PNG解码能力较差,我该如何解决?假设我无权访问未压缩的文件,如何将压缩后的文件加载到Metal中?更令我嫉妒的是,因为其他所有应用程序加载这些压缩纹理都没有问题。有什么方法可以配置MTKTextureLoader.newTexture()来接受压缩的PNG文件

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)