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はその2倍(ほぼ2Mo)です。つまり、私のBase64は3 Moを回っており、これは巨大です。
JPEGのNSDataが「通常の」サイズの2倍のサイズであるのはなぜですか。