簡體   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