Unity将RenderTexture转成一张图片并剪裁保存到本地

这里写图片描述


    //将RenderTexture保存成一张png图片  
    public bool SaveRenderTextureToPNG(RenderTexture rt, string contents, string pngName)
    {
        RenderTexture prev = RenderTexture.active;
        RenderTexture.active = rt;
        Texture2D png = new Texture2D(rt.width, rt.height, TextureFormat.ARGB32, false);
        png.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0);
        byte[] bytes = png.EncodeToPNG();
        if (!Directory.Exists(contents))
            Directory.CreateDirectory(contents);
        FileStream file = File.Open(contents + "/" + pngName + ".png", FileMode.Create);
        BinaryWriter writer = new BinaryWriter(file);
        writer.Write(bytes);
        file.Close();
        Texture2D.DestroyImmediate(png);
        png = null;
        RenderTexture.active = prev;
        return true;

    }  

Unity将RenderTexture转成一张图片并剪裁保存到本地_第1张图片


截取前图片为如下:
Unity将RenderTexture转成一张图片并剪裁保存到本地_第2张图片


剪切后画面如下:
Unity将RenderTexture转成一张图片并剪裁保存到本地_第3张图片


关于剪裁我想说明如下:
照片需要放在画布上
从照片的哪个位置开始剪裁,剪多宽和多高
剪裁完毕的图片相对于画布,摆在画布的哪个位置

QQ技术交流群:386476712

你可能感兴趣的:(Unity保存)