2016-12-14 119 views
0

我有有效的base64圖像。我將它轉換爲圖像。用位圖問題保存圖像

用於保存Image.Save(Path)
我有Gdi +錯誤。

當我嘗試使用位圖保存。圖像將保存,但圖像是完全黑色的像enter image description here

這裏是我的代碼

  var encode = EncodeBase64(model.Base64Photo); 

       //model.Base64Photo = model.Base64Photo.Replace("data:image/png;base64,", "").Replace("data:image/jpeg;base64,", ""); 
       //var imageBytes = Convert.FromBase64String(encode); 

       var ms = new MemoryStream(encode); 
       var returnImage = Image.FromStream(ms); 
       var bitmap = new Bitmap(returnImage); 
       bitmap.Save([email protected]"C:\inetpub\wwwroot\Dropbox\Websites\2.fidilio.com\Storage\Images\animal\storage\images\animal\{model.Name}-{model.Email}.jpg", ImageFormat.Jpeg); 
       bitmap.Dispose(); 
    public byte[] EncodeBase64(string data) 
    { 
     string s = data.Trim().Replace(" ", "+").Replace("-", "+").Replace("/", "+"); 
     if (s.Length % 4 > 0) 
      s = s.PadRight(s.Length + 4 - s.Length % 4, '='); 
     return Convert.FromBase64String(s); 
    } 

我感到困惑,以至於哪裏出了問題

+0

@CodyGray PhysicalFolderPath是C:\\ inetpup \\ – salar

+0

科迪..什麼?無論如何,你得到了什麼GDI錯誤? – Trey

+0

發生在GDI +此錯誤的通用錯誤 – salar

回答

2

看起來你正在做內存流從字符串,我是正確的?你應該從字節數組中創建內存流,就像這樣。

string s = "iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAAAAAAcD2kOAAACOklEQVR4Ae3YhbIdIQwA0H7YBshzd3d3d7sKJO+vqwxzty4L7UyTkfU9K0CAN/iXQmCBBf5XYIEFFlhggQXeeqr9dDxvVgi/2F+IeoVw/VfgWoVw7VfgF4H/HHbE5L+uEZNLBnt7c3Rao6+w3t0cntUpEeyfJzRAzxF96b5MalB9p5QEdq3RAhG1virL8YgKR6qG+aj4uK5G2q7kxiMw7ZPAK/BpA/a55MYjpq/hUsBrAda9NV+GwxE90EwB07kKW7BSeuV4BBYpSal2U+GVDd5RSW4P67A7CUw3xmAoRV/71rDKiRoQXoKwrU65BB8qRN1X94lg/9KjQ/kaarkyHAp7GtjyNoQdsMOd8DqgGrUuGezawyq8cs+zj66zIxr1BSVMi3waq9QiR/j1TCHMkU0Axz6Xn47l6+g1fFp+7tem6yEtTHdoQmU2B56988R3QwphgxP3QHi1wCCryZOn+svVUpdCPdBwiWFf69UYQqnu3h4NBhGOOHmfi/cBY5hPbZkaty4pHOqOwnIYfU0Zepl0obEcsEBZurc0C+UX7nnyWWD/0GU6DxZbnKlDz+tFxzE12HSZYN/o1xgDTjjbEIYPIR5Sk85mg50dV7Em31I+2NK1DuULljjraJEWIHR1X3xW2D93q49VaZczj4/5FAsFsOSyD8zpYXV68czlh61nIvo/50AErlUIP5D/6aDHCuHFk7OfjpMVma8WWGCBBRZYYIEFFlhggQUWWGCBBRZYYIEFFlhggQV+B9418JaaYBt6AAAAAElFTkSuQmCC"; 

    var imageBytes = Convert.FromBase64String(s); 

    var ms = new MemoryStream(imageBytes); 
    var returnImage = Image.FromStream(ms); 
    var bitmap = new Bitmap(returnImage); 
    //bitmap.Save([email protected]"C:\inetpub\wwwroot\Dropbox\Websites\2.fidilio.com\Storage\Images\animal\storage\images\animal\{model.Name}-{model.Email}.jpg", ImageFormat.Jpeg); 
    bitmap.Save(@"c:\temp\img.jpg"); 
    bitmap.Dispose(); 
+0

我更新了問題 – salar

+0

好吧,你是否嘗試過從我的答案代碼?即在此[站點](https://www.base64-image.de/)上創建的base64編碼圖像。你確定你的方法返回有效的base64字符串嗎? – Nino

+0

它說我文件太大,不讓我基地64 – salar