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;

    }
    }

  • 相关阅读:
    python分析文本文件/json
    python中文件操作
    python异常处理
    socket网络模块
    层模型--固定定位
    层模型--相对定位
    层模型--绝对定位
    什么是层模型?
    浮动模型
    流动模型/a标签换行问题
  • 原文地址:https://www.cnblogs.com/alps/p/7791676.html
Copyright © 2011-2022 走看看