如何在 xamarin.android 中将图像转换为 base64?
how to convert an image into base64 in xamarin.android?
我有这段代码,它在 android studio 中运行良好,但在 xamarin 中运行不佳
bitmap.Compress() 在 xamarin 中有不同的参数,我很困惑如何在 xamarin.android 中将图像转换为 base64 或二进制?
我在第 3 行收到错误消息:
( bitmap.Compress() has some invalid arguments).
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);
这就是我为 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 ();
}
}
希望对您有所帮助。
如果您查看 Xamarin 中的 documentation for 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, Base64Flags.Default);
(如果您愿意,也可以使用 Convert.ToBase64String
而不是 Base64.EncodeToString
。)
我有这段代码,它在 android studio 中运行良好,但在 xamarin 中运行不佳 bitmap.Compress() 在 xamarin 中有不同的参数,我很困惑如何在 xamarin.android 中将图像转换为 base64 或二进制?
我在第 3 行收到错误消息:
( bitmap.Compress() has some invalid arguments).
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);
这就是我为 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 ();
}
}
希望对您有所帮助。
如果您查看 Xamarin 中的 documentation for 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, Base64Flags.Default);
(如果您愿意,也可以使用 Convert.ToBase64String
而不是 Base64.EncodeToString
。)