簡體   English   中英

如何在 xamarin.android 中將圖像轉換為 base64?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM