- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using System.IO;
- using UnityEngine.UI;
- using System;
- using qynewmj.Tools;
- using qynewmj.Helper;
- public class GetImage
- {
- // 掉DownLoadUri(uri) 方法···接HttpDownLoadCompleted事件 HttpDownLoadCompleted(arg1, arg2);
- //第一个给你的参数是uri,第2个byte[] 你可以先判断uri是不是等于你刚才传进去的···
- public static Sprite DownLoadImage(string url)
- {
- string md5 = MD5Tool.MD5HashString(url);
- string fileName = Application.persistentDataPath + "/" + md5 + ".jpg";
- bool exist = File.Exists(fileName);
- // 如果存在
- if (exist)
- {
- return LoadAlreadlySaveFile(fileName);
- }
- else
- {
- // 开启下载,会触发bytes回调(uri,byte[])
- ApiHelper.Instance.DownLoadUri(url);
- return null;
- }
- }
- public static Sprite SaveImage(string url,byte[] bytes)
- {
- string md5 = MD5Tool.MD5HashString(url);
- string fileName = Application.persistentDataPath + "/" + md5 + ".jpg";
- FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate);
- fs.Write(bytes, 0, bytes.Length);
- fs.Close();
- return LoadAlreadlySaveFile(fileName);
- }
- private static Sprite LoadAlreadlySaveFile(string fileName)
- {
- FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate);
- byte[] imgByte = new byte[fs.Length];
- fs.Read(imgByte, 0, imgByte.Length);
- Texture2D tex = new Texture2D(80,80);
- try
- {
- tex.LoadImage(imgByte);
- }
- catch (Exception ex)
- {
- }
- Sprite sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f));
- fs.Close();
- return sprite;
- }
- }
【Unity】微信登录后将头像存为bytes,将bytes读取成sprite图片
最新推荐文章于 2023-06-21 18:31:48 发布