原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2018/1127/211.html
Unity两中方式加载图片
看到我们常州微信小程序开发-幻天网络发的的图片,也是真懒。
想起来当时写天气预报现在都忘干净了,好记性不如烂笔头,还是应该多记。自己打下来好了
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System.IO; public class readPictures : MonoBehaviour { private Image image; private string loadpath = "D:/SOmeOther/NGUI/Assets/StreamingAssets/test.jpg"; //IO方式加载的路径 private string picpathWWW = "test.jpg"; //WWW的加载方式路径 // Use this for initialization private void Start() { image = GetComponent(); //IO方法加载速度快 // LoadByIO(); //WWW 加载速度慢 LoadByWWW(); } private void LoadByIO() { double startTime = (double) Time.time; //创建文件流 FileStream fileStream = new FileStream(loadpath, FileMode.Open, FileAccess.Read); fileStream.Seek(0, SeekOrigin.Begin); //创建文件长度的缓冲区 byte[] bytes = new byte[fileStream.Length]; //读取文件 fileStream.Read(bytes, 0, (int) fileStream.Length); //释放文件读取liu fileStream.Close(); fileStream.Dispose(); fileStream = null; //创建Texture int width = 300; int height = 372; Texture2D texture2D = new Texture2D(width, height); texture2D.LoadImage(bytes); Sprite sprite = Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), new Vector2(0.5f, 0.5f)); image.sprite = sprite; double time = (double) Time.time - startTime; Debug.Log("IO加载用时:" + time); } private void LoadByWWW() { StartCoroutine(Load()); } private string url = "file://D:/SOmeOther/NGUI/Assets/StreamingAssets/"; // private string url = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1502532130856&di=7135149ed906483861efdfc9770def3b&imgtype=0&src=http://www.newasp.net/attachment/soft/2017/0811/144057_83971519.png"; 这里当然可以换做网络图片的URL 就加载网络图片了 private IEnumerator Load() { double startTime = (double) Time.time; WWW www = new WWW(url + picpathWWW);//只能放URL // WWW www = new WWW(url);//只能放URL 这里可以换做网络的URL yield return www; if (www!=null && string.IsNullOrEmpty(www.error)) { Texture2D texture = www.texture; //创建 Sprite Sprite sprite = Sprite.Create(texture,new Rect(0,0,texture.width,texture.height),new Vector2(0.5f,0.5f) ); image.sprite = sprite; double time = (double)Time.time - startTime; Debug.Log("WWW加载用时:" + time); } } }
上篇:上一篇:GrabPass捕捉屏幕纹理
下篇:下一篇:一行代码播放指定BGM