[英]how to convert an image into base64 in xamarin.android?
我有這段代碼,它在 android studio 中運行良好,但在 xamarin bitmap.Compress() 中有不同的參數,我很困惑如何在 xamarin.android 中將圖像轉換為 base64 或二進制?
我在第三行收到一個錯誤:
( 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, Base64Flags.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 ();
}
}
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.