在WCF服务c#中将base64字符串转换为图像

本文关键字:字符串 转换 图像 base64 中将 WCF 服务 | 更新日期: 2023-09-27 18:13:41

我有web应用程序,将图像转换为base64字符串。将它传递给WCF服务,服务方法将把字符串转换回png图像。

客户端(Convert Image to Base 64)

public static string ImageToBase64(string path)
{
    using (Image image = Image.FromFile(path))
    {
        using (MemoryStream m = new MemoryStream())
        {
            image.Save(m, image.RawFormat);
            byte[] imageBytes = m.ToArray();
            // Convert byte[] to Base64 String
            string base64String = Convert.ToBase64String(imageBytes);
            return base64String;
        }
    }
}

WCF服务方法

CommonDataManager.Base64ToImage(designImage).Save(designQuotePath + "/" + "Request_Quote_" + objQuote.Customer_Id.ToString(), ImageFormat.Png);
public static Image Base64ToImage(string base64String)
{
    Image image = null;
    try
    {                
        byte[] imageBytes = System.Convert.FromBase64String(base64String);
        using (MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length))
        {                    
            image = Image.FromStream(ms, true);
        }                
    }
    catch (Exception ex)
    {
        LogManager.LogException(ex, "Base64ToImage");
    }
    return image;
}

问题:

    输出为正常文件,而不是.png文件。
  • 在发送base64字符串给wcf服务方法作为参数之前,有什么特殊的东西需要检查吗?

在WCF服务c#中将base64字符串转换为图像

您需要添加扩展名。更新:

    CommonDataManager.Base64ToImage(designImage).Save(designQuotePath + "/" + 
"Request_Quote_" + objQuote.Customer_Id.ToString(), ImageFormat.Png);

   CommonDataManager.Base64ToImage(designImage).Save(designQuotePath + "/" + 
"Request_Quote_" + objQuote.Customer_Id.ToString() + ".png", ImageFormat.Png);