zoukankan      html  css  js  c++  java
  • 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;

    }
    }

  • 相关阅读:
    20150826运算符,if语句
    20150825数据类型以及数据转换
    !!!SQL sever 函数表达
    SQL
    !!!遍历数组之多维数组!
    数组应用之————二分法查找
    数组-冒泡排列
    Homework!---判断多久过生日
    C#——语句!
    C#——语言基础 之 运算符!
  • 原文地址:https://www.cnblogs.com/alps/p/7791676.html
Copyright © 2011-2022 走看看