【问题标题】:In Unity how do I convert a compressed Texture Asset to in-memory RGB24?在 Unity 中,如何将压缩的纹理资源转换为内存中的 RGB24?
【发布时间】:2017-10-18 10:17:48
【问题描述】:

我正在尝试将静态 Texture2D 资源传递给库,但它只需要 RGB24、RGB32 或 RGB32A。这些是未压缩的,所以以这种格式存储我的纹理并不是一个真正的选择,它会是巨大的。

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

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

那么,在 C# 中,如何将压缩的纹理资源转换为内存中的 RGB24?

【问题讨论】:

    标签: c# unity3d textures image-conversion


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-12-21
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 2018-05-03
      相关资源
      最近更新 更多