2012-08-31 191 views
1
byte[] bytes = Convert.FromBase64String(in); 
Image image = Image.FromStream(new MemoryStream(bytes)); 
MemoryStream objMS = new MemoryStream(); 
image.Save(objMS, System.Drawing.Imaging.ImageFormat.MemoryBmp); 
string out = Convert.ToBase64String(objMS.ToArray()) 
objMS.Close(); 

上述代碼失敗,出現非常無益的錯誤消息:C# - Base64編碼JPEG到Base64編碼BMP

'Value cannot be null. Parameter name: encoder' 

回答

3

您shoudn't使用ImageFormat.MemoryBmp,這只是用來表示在內存中的位圖。沒有任何編碼器將其作爲文件保存。

使用ImageFormat.Bmp

2

變化

image.Save(objMS, System.Drawing.Imaging.ImageFormat.MemoryBmp); 

image.Save(objMS, System.Drawing.Imaging.ImageFormat.Bmp); 

PS:另外string out = ...應該string @out = ...out是一個C#的關鍵字)