繁体   English   中英

ImageConverter:参数对字节数组无效

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM