Unity3d:加載Format是RGB24位的圖片失敗(加載圖片顯示問號)


問題描述:加載圖片顯示是個紅色的問號,調試發現,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();
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM