• Unity之将Texture保存成png


    http://blog.csdn.net/bingheliefeng/article/details/51177505

    using UnityEngine;
    using System.Collections;
    using System.IO;

    public class SaveToPng : MonoBehaviour {

    public Shader outShader;
    public Texture inputTex;

    // Use this for initialization
    void Start () {
    SaveRenderTextureToPNG(inputTex,outShader,Application.dataPath+"/temp","ok.png");
    }

    public bool SaveRenderTextureToPNG(Texture inputTex,Shader outputShader, string contents, string pngName)
    {
    RenderTexture temp = RenderTexture.GetTemporary(inputTex.width, inputTex.height, 0, RenderTextureFormat.ARGB32);
    Material mat = new Material(outputShader);
    Graphics.Blit(inputTex, temp, mat);
    bool ret = SaveRenderTextureToPNG(temp, contents,pngName);
    RenderTexture.ReleaseTemporary(temp);
    return ret;

    }

    //将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;

    }
    }

  • 相关阅读:
    Eclipse编辑properties文件中文乱码
    Spark安装
    安装VirtualBox后,VMware不能上网
    Hadoop Eclipse插件编译
    MapReduce 常见问题
    MapReduce 气象数据集
    Maven构建Hadoop开发环境
    Eclipse安装Maven
    吴恩达深度学习笔记 course4 week2 深度卷积网络 实例探究
    吴恩达深度学习笔记 cousrse4 week1作业
  • 原文地址:https://www.cnblogs.com/alps/p/7791676.html
Copyright © 2020-2023  润新知