我有制作BarcodeImage的Web服务。它以ReturnData类的属性形式返回Image,如
public class ReturnData
{
public Image BarcodeImage {get;set;}
public bool IsError {get; set;}
public string ErrorDesc { get;set;}
}
现在我将服务参考添加到我的网站。所有事情都有效,但是当我指定返回图像值时,它会为无效转换提供错误
像
System.Drawing.Image retImage = ReturnData.BarcodeImage;
(这里的ReturnData是WebService ReturnData类的对象。我不是在编写所有东西)
请问我如何从Web服务获取此图像
答案 0 :(得分:2)
我认为您需要先将图像转换为字节数组,然后再将其发送到。在接收端,从字节数组转换为图像。
另一种方法是在发送时将图像转换为基本64字符串,然后在接收时从base64转换为图像。
以下代码来自here:
图片到Base64字符串
public string ImageToBase64(Image image,
System.Drawing.Imaging.ImageFormat format)
{
using (MemoryStream ms = new MemoryStream())
{
// Convert Image to byte[]
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();
// Convert byte[] to Base64 String
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
Base64字符串到图像
public Image Base64ToImage(string base64String)
{
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64String);
MemoryStream ms = new MemoryStream(imageBytes, 0,
imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
Image image = Image.FromStream(ms, true);
return image;
}
答案 1 :(得分:0)
您确定正确的类型是System.Drawing.Image
吗?试试System.Web.UI.WebControls.Image
。