如何反转 Texture2D unity 的通道顺序

How to reverse channel order of a Texture2D unity

我需要将 texture2D 从具有正常的 RGBA 通道顺序转换为 BGRA 通道顺序。我原本希望它会像

一样简单
// Load image
Texture2D loaded = Resources.Load("zidane_640x640") as Texture2D;

// Convert from RGBA32 to BGRA32
Texture2D frame = new Texture2D(loaded.height, loaded.width, TextureFormat.BGRA32, false);
frame.SetPixels32(loaded.GetPixels32());
frame.Apply();

但这没有任何效果。我无法在任何地方找到一种方法来切换 Color[] 或 Texture2D 的通道顺序。有什么简单的方法可以做到这一点,还是我必须逐像素手动交换通道顺序?


它工作正常。你刚才打错了。

Texture2D frame = new Texture2D(loaded.width, loaded.height, TextureFormat.BGRA32, false);

或者:

Graphics.ConvertTexture( src , dst );