using UnityEngine;
using System.Collections;
using System.IO;
/// <summary>
/// Save render texture.
/// 1.需要在Assets同级目录下新建一个Dump文件夹
/// 2.一般绑在摄像机下
/// 3.摄像机中添加RenderTexture,并将其设置为OutputTexture
/// </summary>
public class SaveRenderTexture : MonoBehaviour {
public RenderTexture OutputTexture;
[ContextMenu("Save png")]
private void SaveTextureToFile()
{
if (OutputTexture != null)
{
RenderTexture prev = RenderTexture.active;
RenderTexture.active = OutputTexture;
Texture2D png = new Texture2D(OutputTexture.width, OutputTexture.height, TextureFormat.ARGB32, false);
png.ReadPixels(new Rect(0, 0, OutputTexture.width, OutputTexture.height), 0, 0);
byte[] bytes = png.EncodeToPNG();
string path = string.Format("Dump/raw {0}.png", Random.Range(0, 65536).ToString("X"));
FileStream file = File.Open(path, FileMode.Create);
BinaryWriter writer = new BinaryWriter(file);
writer.Write(bytes);
file.Close();
png = null;
RenderTexture.active = prev;
}
}
}