Unity把圖片寫入本地和讀取本地圖片
阿新 • • 發佈:2019-02-02
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class PicIO : MonoBehaviour
{
int count = 0;
string path;
List<Texture2D> picList;
// Use this for initialization
void Start()
{
path = Application.dataPath + "/MyPhoto";
Debug.LogError(path);
if (Directory.Exists(path))
{
FileAttributes attr = File.GetAttributes(path);
if (attr == FileAttributes.Directory)
{
Directory.Delete(path, true);
}
else
{
File.Delete(path);
}
}
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
picList = new List<Texture2D>();
}
public void WriteIntoPic(Texture2D tex)
{
// Encode texture into PNG
//編碼紋理為PNG格式
//Debug.LogError("圖片寫入資料夾" + path + "/" + count.ToString() + ".png");
var bytes = tex.EncodeToPNG();
File.WriteAllBytes(path + "/" + count.ToString() + ".png", bytes);
count++;
}
/// <summary>
/// 獲取對應的圖片,通過索引讀取
/// </summary>
Texture2D tex;
public void ReadIntoPic(List<int> Indexlist)
{
StartCoroutine(StartRead(Indexlist));
}
IEnumerator StartRead(List<int> Indexlist)
{
for (int i = 0; i < Indexlist.Count; i++)
{
//Debug.LogError("當前搜尋圖片索引" + Indexlist[i]);
//Debug.LogError("file://" + path + Indexlist[i].ToString() + ".png");
WWW www = new WWW("file://" + path + Indexlist[i].ToString() + ".png");
tex = null;
yield return www;
if (www.error == null)
{
tex = www.texture;
picList.Add(tex);
}
}
}
public List<Texture2D> GetpicListRank()
{
return picList;
}
}
using System.Collections.Generic;
using UnityEngine;
using System.IO;
public class PicIO : MonoBehaviour
{
int count = 0;
string path;
List<Texture2D> picList;
// Use this for initialization
void Start()
{
path = Application.dataPath + "/MyPhoto";
Debug.LogError(path);
if (Directory.Exists(path))
{
FileAttributes attr = File.GetAttributes(path);
if (attr == FileAttributes.Directory)
{
Directory.Delete(path, true);
}
else
{
File.Delete(path);
}
}
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
picList = new List<Texture2D>();
}
public void WriteIntoPic(Texture2D tex)
{
// Encode texture into PNG
//編碼紋理為PNG格式
//Debug.LogError("圖片寫入資料夾" + path + "/" + count.ToString() + ".png");
var bytes = tex.EncodeToPNG();
File.WriteAllBytes(path + "/" + count.ToString() + ".png", bytes);
count++;
}
/// <summary>
/// 獲取對應的圖片,通過索引讀取
/// </summary>
Texture2D tex;
public void ReadIntoPic(List<int> Indexlist)
{
StartCoroutine(StartRead(Indexlist));
}
IEnumerator StartRead(List<int> Indexlist)
{
for (int i = 0; i < Indexlist.Count; i++)
{
//Debug.LogError("當前搜尋圖片索引" + Indexlist[i]);
//Debug.LogError("file://" + path + Indexlist[i].ToString() + ".png");
WWW www = new WWW("file://" + path + Indexlist[i].ToString() + ".png");
tex = null;
yield return www;
if (www.error == null)
{
tex = www.texture;
picList.Add(tex);
}
}
}
public List<Texture2D> GetpicListRank()
{
return picList;
}
}