2012-08-31 152 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#的关键字)