将结果中的图像保存为 asp.net 核心中的 base64 字符串

Save image from result convert base64 string in asp.net core

在我已经在 webservice 中创建方法之前,这是我的编码

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void Base64ToImage(string imagestr)
{
    DbAccessConnection conn = getActiveConnection();

    try
    {
        beginTransaction(conn);

        string DefaultImagePath = HttpContext.Current.Server.MapPath("~/c:/image");

        byte[] bytes = Convert.FromBase64String(imagestr);

        using (MemoryStream ms = new MemoryStream(bytes))
        {
            Image pic = Image.FromStream(ms);

            pic.Save(DefaultImagePath);
        }
            commitTransaction(conn);
    }
    catch (Exception ex)
    {
        rollbackTransaction(conn);

        Responder.writeResponse(false, ex.Message);             
    }
}

当我在我的网络服务中执行方法 Base64ToImage 时,我收到了消息错误 这是一个消息错误

{"isSuccess":false,"resultMessage":"A generic error occurred in GDI+.","data":null}

请帮帮我,我该如何解决?

你的代码中有一个错误,DefaultImagePath 是一个目录,你必须为 Save() 方法指定一个文件名才能实际工作。

例如:

// Example 1:
pic.Save("full/path/to/your/image.jpg");

// Example 2:
pic.Save(DefaultImagePath + "/yourimage.jpg");

可能是你保存的时候没注意图片的格式,文件名要完整(不是文件夹路径)

pic.Save(DefaultImagePath,ImageFormat.Png);

重写

using (MemoryStream ms = new MemoryStream(bytes))
        {
            using (Image pic = Image.FromStream(ms))
            {
             pic.Save(DefaultImagePath+fileName.png, ImageFormat.Png);
            }
        }