我在Assets文件夹中有一个Texture(Texture Type = Advanced,Read / Write Enabled = true,Max Size = 512,Format = RGB 24 bit)。现在我想读取这个纹理,然后将像素复制到另一个texture2d并保存。
private Texture2D sourceImg;
...
Texture2D tex = new Texture2D(512, 512, TextureFormat.RGB24, false);
tex.SetPixels(sourceImg.GetPixels(0,0,512,512));
tex.Apply();
byte[] png = tex.EncodeToPNG();
File.WriteAllBytes(Application.persistentDataPath + "/Screenshot.png", png);
我不知道,为什么这个简单的代码不起作用?
当我将新的tex添加到四元组时:
quad.renderer.material.mainTexture = tex;
有效。
答案 0 :(得分:1)
答案 1 :(得分:-1)
谢谢!适合我。建议改变这个: File.WriteAllBytes(Application.persistentDataPath +“/ Screenshot.png”,png); 通过自定义输出文件夹,如下所示: File.WriteAllBytes(“C:/ OutputFolder”+“/ Screenshot.png”,png);