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

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;
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/wang274380874/article/details/83623839