Unity3d-WWW实现图片资源显示以及保存和本地加载

Posted alps_01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d-WWW实现图片资源显示以及保存和本地加载相关的知识,希望对你有一定的参考价值。

 

 

本文固定连接:http://blog.csdn.net/u013108312/article/details/52712844

WWW实现图片资源显示以及保存和本地加载

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

enum GetPicType
{
    DownLoad = 0,
    LocalLoad,
}

public class Picture : MonoBehaviour
{
    //这里是本地的ip地址
    string url = "http://127.0.0.1:80000/1.jpg";
    /// <summary>
    /// 网络下载的图片
    /// </summary>
    private Texture2D img = null;
    /// <summary>
    /// 本地图片
    /// </summary>
    private Texture2D img2 = null;
    private bool downloadOK = false;

    void OnGUI()
    {
        if (this.img != null)
            GUI.DrawTexture(new Rect(0, 0, 200, 300), this.img);
        if (this.img2 != null)
            GUI.DrawTexture(new Rect(320, 0, 200, 300), this.img2);
        if (GUI.Button(new Rect(210, 0, 100, 20), "显示网络图片"))
        {
                StartCoroutine(this.DownLoadTexture(this.url, GetPicType.DownLoad));
        }
        if (GUI.Button(new Rect(210, 50, 100, 20), "显示本地图片"))
        {
            if (this.downloadOK)
            {
                StartCoroutine(DownLoadTexture("file://" + Application.streamingAssetsPath + "/1.png", GetPicType.LocalLoad));
            }
            else
            {
                Debug.LogError("没有下载完毕");
            }
        }
    }

    IEnumerator DownLoadTexture(string url, GetPicType getType)
    {
        WWW www = new WWW(url);
        Texture2D tempImage;
        yield return www;
        if (www.isDone && www.error == null)
        {
            switch (getType)
            {
                case GetPicType.DownLoad:
                    {
                        this.img = www.texture;
                        tempImage = this.img;
                        Debug.Log(tempImage.width + "  " + tempImage.height);
                        break;
                    }
                case GetPicType.LocalLoad:
                    this.img2 = www.texture;
                    tempImage = this.img;
                    Debug.Log(tempImage.width + "  " + tempImage.height);
                    break;
                default:
                    tempImage = null;
                    break;
            }
            if (tempImage != null)
            {
                byte[] data = tempImage.EncodeToPNG();
                File.WriteAllBytes(Application.streamingAssetsPath + "/1.png", data);
                this.downloadOK = true;
            }
        }
    }
}

以上是关于Unity3d-WWW实现图片资源显示以及保存和本地加载的主要内容,如果未能解决你的问题,请参考以下文章

初学视觉学习笔记----保存并显示图片(打开两个相机)

怎样用php实现上传图片到数据库

vue + elementui upload上传图片到服务器以及保存后回显问题

ssm框架实现图片上传显示并保存地址到数据库

如何利用OpenCV读取,显示以及写入图片?

如何用QT实现在图片上叠加显示文字