如何将图像转换为xamarin.android中的base64?

我有这个代码,它在android studio中工作得很好,但在xamarin bitmap.Compress()在xamarin中有不同的参数 ,我很困惑如何在xamarin.android中将图像转换为base64或二进制?

我在第3行收到错误:

(bitmap.Compress()有一些无效的参数)。

Bitmap bitmap = BitmapFactory.DecodeResource(Resources, Resource.Drawable.ace1); ByteArrayOutputStream bao = new ByteArrayOutputStream(); bitmap.Compress(Bitmap.CompressFormat.Jpeg, 100,bao); byte[] ba = bao.ToByteArray(); string bal = Base64.EncodeToString(ba, Base64.Default); 

如果您查看Xamarin中Bitmap.Compress的文档 ,您会看到最后一个参数是Stream

.NET中ByteArrayOutputStream的等价物是MemoryStream ,因此您的代码将是:

 Bitmap bitmap = BitmapFactory.DecodeResource(Resources, Resource.Drawable.ace1); MemoryStream stream = new MemoryStream(); bitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, stream); byte[] ba = stream.ToArray(); string bal = Base64.EncodeToString(ba, Base64.Default); 

(如果你愿意,也可以使用Convert.ToBase64String而不是Base64.EncodeToString 。)

这就是我为我的Bitmap对象获取Byte[]的方法:

 Byte[] imageArray = null; Bitmap selectedProfilePic = this.GetProfilePicBitmap (); if (selectedProfilePic != null) { using (var ms = new System.IO.MemoryStream ()) { selectedProfilePic.Compress (Bitmap.CompressFormat.Png, 0, ms); imageArray = ms.ToArray (); } } 

希望这可以帮助。