为了这个原因,我搜索了搜索解决方案。但是,我无法找到解决此问题的方法。我使用了与Google引用相同的代码。
以下是我的代码:
public HttpResponseMessage Save_ScreenCaptureDetails([FromBody] ScreenCapture objScreencapture)
{
//Save the image in given path
var img2 = Base64ToImage(objScreencapture.FulImg64);
using (var screenImage = new Bitmap(img2))
{
screenImage.Save(
(string.Format(@"{0}", objScreencapture.FullImagepath)), ImageFormat.Png);
}
var thumbnail = Base64ToImage(objScreencapture.ThumbImg64);
using (var thumbImage = new Bitmap(thumbnail))
{
thumbImage.Save(
(string.Format(@"{0}", objScreencapture.ThumbImagepath)), ImageFormat.Png);
}
var result = IreportServices.Save_ScreenCaptureDetails(objScreencapture);
return Request.CreateResponse(result == null ? HttpStatusCode.NoContent : HttpStatusCode.OK, result);
}
public Image Base64ToImage(string base64String)
{
// Convert Base64 String to byte[]
var imageBytes = Convert.FromBase64String(base64String);
var ms = new MemoryStream(imageBytes, 0,
imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
var image = Image.FromStream(ms, true);
return image;
}
错误:
System.Runtime.InteropServices.ExternalException(0x80004005):GDI +中发生一般错误。 在System.Drawing.Image.Save(String filename,ImageCodecInfo encoder,EncoderParameters encoderParams) 在System.Drawing.Image.Save(String filename,ImageFormat format)
注意:我已经为我的文件夹设置了写入权限
答案 0 :(得分:3)
这个问题有一些可能的原因。
objScreencapture.ThumbImagepath
和/或objScreencapture.FullImagepath
是否存在(文件名除外)。