private void SaveRenderTextureToPNG(Texture inputTex, string file)
{
RenderTexture temp = RenderTexture.GetTemporary(inputTex.width, inputTex.height, 0, RenderTextureFormat.ARGB32);
Graphics.Blit(inputTex, temp);
Texture2D tex2D = GetRTPixels(temp);
RenderTexture.ReleaseTemporary(temp);
File.WriteAllBytes(file, tex2D.EncodeToPNG());
}
private Texture2D GetRTPixels(RenderTexture rt)
{
RenderTexture currentActiveRT = RenderTexture.active;
RenderTexture.active = rt;
Texture2D tex = new Texture2D(rt.width, rt.height);
tex.ReadPixels(new Rect(0, 0, tex.width, tex.height), 0, 0);
RenderTexture.active = currentActiveRT;
return tex;
}
Color[] colors = tex.GetPixels(capx, capy, capwidth, capheight);
System.Array.Reverse(colors, 0, colors.Length);
Texture2D t = new Texture2D(capwidth, capheight, TextureFormat.RGB24, true);
//Debug.Log("Pixel size:" + capx + " " + capy + " " + capwidth + " " + capheight);
//t.ReadPixels(new Rect(capx, capy, capwidth, capheight), 0, 0, false);
//for (int i = 0; i < capwidth; i++)
//{
// for(int j=0;j<capheight;j++)
// {
// Color temp = t.GetPixel(i, j);
// t.SetPixel(i,j,)
// }
//}
t.SetPixels(colors);
t.Apply();