我正在使用此代码将来自android端的base64字符串转换为websevice的webmethod中的图像...但它给了我错误“GDI +中发生了一般错误”..
Random r = new Random();
int n = r.Next();
string pic = n + ".jpg";
byte[] imageBytes = Convert.FromBase64String(picpath);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
ms.Write(imageBytes, 0, imageBytes.Length);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
String picname = Server.MapPath("FarmImages") + "\\"+pic;
image.Save(@picname);
有可能我在webmethod中使用它,因为它给了我错误。因为这在ASP页面中完美地工作...但是在Web服务中抛出错误..
答案 0 :(得分:0)
哪一行发生错误?是image.Save()?您的服务进程是否有权写入要保存到的文件夹?
我不确定您的错误是什么,但看起来您正在编写两次内存流。这段代码似乎对我有用:
string imagestr = Convert.ToBase64String(File.ReadAllBytes(@"d:\temp\apng.png"));
byte[] imageBytes = Convert.FromBase64String(imagestr);
var stream = new MemoryStream(imageBytes);
stream.Position = 0;
var image = System.Drawing.Image.FromStream(stream);
image.Save(@"d:\temp\testout.png");