[英]ImageConverter: Parameter is not valid for a byte array
我将图像的字符串格式数据从iPhone客户端代码发送到Web服务。 我试图在binary64中编码,然后将其转换为字节数组。 我在代码中的以下点遇到Parameter not valid
问题。
byte[] ImgInput = System.Text.Encoding.UTF8.GetBytes(ImgInputString);
string imgString = Convert.ToBase64String(ImgInput);
byte[] imgBYtes = Convert.FromBase64String(imgString);
System.IO.Stream ms =(Stream)
new System.IO.MemoryStream(ImgInput);
//ms.Write(ImgInput, 0, ImgInput.Length);
ImageConverter ic = new ImageConverter();
Image image = (Image)ic.ConvertFrom(imgBYtes);---ERROR here
ImageConverter
类不用于解压缩图像文件。 使用Image.FromStream
方法解压缩数组中的数据:
Image image;
using (MemoryStream m = new MemoryStream(imgBytes)) {
image = Image.FromStream(m);
}
编辑:
但是,您的第一个问题是如何编码数据。 你得到一个字符串,你编码为UTF-8,然后编码为base-64,然后从base-64解码。 你在那时所拥有的仍然是一个编码为UTF-8的字符串,这不是你可以作为图像加载的东西。 将数据转换为base-64并再次返回不会以任何方式更改数据。
如果它是一个base64编码的字符串,你得到它作为输入,你应该解码它:
byte[] imgBytes = Convert.FromBase64String(ImgInputString);
如果是其他格式,则必须使用反向过程对其进行解码,以获取在发送之前编码的二进制数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.