2017-03-27 238 views
0

我试图将一个静态Texture2D资产传递给一个库,但它只需要RGB24,RGB32或RGB32A。那些是未压缩的,因此以这种格式存储我的纹理不是真正的选择,它会是巨大的。在Unity中,如何将压缩的Texture Asset转换为内存RGB24?

如果我将我的Texture2D以压缩格式存储,如何将其转换为内存中的RGB24(或RGB32)?

我知道如何用正确的格式和大小创建一个新的纹理,我只是不知道如何在没有着色器和渲染目标等的情况下移动图像数据,但我认为有一个更快更简单的方法。

那么,在C#中,如何将压缩的Texture Asset转换为内存中的RGB24?

回答

0

首先在导入设置中将您的纹理标记为读/写。然后你可以使用Texture2D.GetPixels32来检索像素数据。如果你的库不支持默认格式unity提供的Color32(它是ARGB或RGBA,不记得),你将不得不手动转换它。

相关问题