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