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();
上面的代码失败了一条非常无用的错误消息:
'Value cannot be null. Parameter name: encoder'
答案 0 :(得分:3)
你不应该使用ImageFormat.MemoryBmp
,这只是为了在内存中表示位图。没有任何编码器可以将其保存为文件。
使用ImageFormat.Bmp
。
答案 1 :(得分:2)
更改
image.Save(objMS, System.Drawing.Imaging.ImageFormat.MemoryBmp);
要
image.Save(objMS, System.Drawing.Imaging.ImageFormat.Bmp);
PS:string out = ...
也应为string @out = ...
(out
是c#的关键字)