C# 如何将UlImage作为Base64字符串传递给Asp.Net Web Api
我有iOS 10 Swift 3的以下代码C# 如何将UlImage作为Base64字符串传递给Asp.Net Web Api,c#,ios,asp.net-web-api,swift3,C#,Ios,Asp.net Web Api,Swift3,我有iOS 10 Swift 3的以下代码 if let pic = info[UIImagePickerControllerOriginalImage] as? UIImage { let sss = UIImagePNGRepresentation(pic)! as NSData let s1 = sss.base64EncodedString(options: .lineLength64Characters) // api call ..... } 在C#WebA
if let pic = info[UIImagePickerControllerOriginalImage] as? UIImage {
let sss = UIImagePNGRepresentation(pic)! as NSData
let s1 = sss.base64EncodedString(options: .lineLength64Characters)
// api call .....
}
在C#WebAPI中,我做了以下工作
byte[] imageBytes = Convert.FromBase64String(defultdr["@imageString"]);
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
Image image = Image.FromStream(ms,true);
image.Save(ImageDirPath + defultdr["@imageName"]);
其中defultdr[“@imageString”]
包含来自iOS Wwift 3的Base64字符串形式的图像数据
但我有以下例外
参数无效
在System.Drawing.Image.FromStream(Stream-Stream,布尔值
使用EmbeddedColorManagement,Boolean validateImageData)在
System.Drawing.Image.FromStream(Stream-Stream)位于
TWebApiSearch.Controllers.UploadController.ImageToDir(TRequest json)
在里面
C:\Users\tahmid\Downloads\APIWeb\twebaisearch\Controllers\UploadController.cs:line
五十三
在WebAPI C中的这一行#
此错误的原因是什么?您正在加载两次内存流。一次,当你初始化它的时候
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
第二,当你写作的时候
ms.Write(imageBytes, 0, imageBytes.Length);
不需要第二个,因为在使用字节数组初始化内存流缓冲区时,您已经加载了它
试试这个
var imageBytes = Convert.FromBase64String(defultdr["@imageString"]);
var ms = new MemoryStream(imageBytes);
var image = Image.FromStream(ms,true);
image.Save(ImageDirPath + defultdr["@imageName"]);
var imageBytes = Convert.FromBase64String(defultdr["@imageString"]);
var ms = new MemoryStream(imageBytes);
var image = Image.FromStream(ms,true);
image.Save(ImageDirPath + defultdr["@imageName"]);