我正在尝试转换UIImage
为Base64
字符串,然后将其发送到 Web 服务 SOAP,然后发送到数据库。
所以,我用我的应用程序选择了一张图片,并尝试用这种方法转换它:
public static string GetBase64FromImage (UIImage picture_)
{
if (picture_ == null)
return string.Empty;
NSData data = picture_.AsJPEG();
Console.WriteLine("JPEG length: " + data.Length);
byte[] byteArray = new byte[data.Length];
System.Runtime.InteropServices.Marshal.Copy(data.Bytes, byteArray, 0, Convert.ToInt32(data.Length));
string base64 = Convert.ToBase64String(byteArray);
Console.WriteLine("Base64 length: "+base64.Length);
return base64;
}
我的意思是图片的总长度。如果我将图片保存在文件系统中并导入它,图片大小大约为 1 Mo。但是用我的方法,JPEG 是它的两倍(几乎 2Mo)。所以我的 Base64 转了 3 个月,这是巨大的。
为什么 JPEG 中的 NSData 大小是“正常”的两倍?