1
我有一个将图像转换为base64字符串的web应用程序。将它传递给WCF服务,并且serivce方法会将该字符串转换回png
图像。将base64字符串转换为wcf服务中的图像c#
客户机端(转换图像至基础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 Serive方法
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服务方法作为参数之前是否有任何特殊的事情需要检查?
在此先感谢。
什么是_normal_文件?你有没有尝试添加文件扩展名? –
@RomanDibikhin是的,当我给扩展名为'.png'它的工作原理。那么为什么不从代码? – Shaggy
MSDN有一个例子显示你需要手动添加扩展。 [这里](https://msdn.microsoft.com/en-us/library/9t4syfhh(V = vs.110)的.aspx) –