您的位置:首页 > 移动开发 > Unity3D

Unity3d:加载Format是RGB24位的图片失败(加载图片显示问号)

2014-06-09 16:05 363 查看
问题描述:加载图片显示是个红色的问号,调试发现,Texture的Format=RGB24的都加载失败,ARGB32位的都能成功,按照常规,首先去度娘,看是否有人遇到和我同样的问题,结果一无所获。将用NGUI读取图片方式改掉后,解决此问题。
解决方案:

UITexture Page_Bg_Texture = Page_Bg.GetComponent<UITexture>();
Texture2D t2 = new Texture2D(840, 560, TextureFormat.RGBA32, false);
//由于图片格式是RGB24用此方法加载失败,所以改用下面的加载方式
//t2.LoadImage(NGUITools.LoadTruePath(System.IO.Path.Combine(Page_Bg_Path, Page_Info == null ? "" : Page_Info.BG)));
// 获取图片对象
System.Drawing.Image imgGif = System.Drawing.Image.FromFile(System.IO.Path.Combine(Page_Bg_Path, Page_Info == null ? "" : Page_Info.BG));
t2.LoadImage(CZDACore.ImageToByteArray(imgGif,System.Drawing.Imaging.ImageFormat.Png));

Page_Bg_Texture.mainTexture = (Texture)t2;


//上面用到的CZDACore.ImageToByteArray()方法
public static byte[] ImageToByteArray(System.Drawing.Image imageIn,System.Drawing.Imaging.ImageFormat imgformat)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms,imgformat);
return ms.ToArray();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: