1
UserAvatar = FindViewById<ImageView>(Resource.Id.profilePic); 
BitmapDrawable drawable = (BitmapDrawable)UserAvatar.GetDrawableState(); 
Bitmap bitmap = drawable.Bitmap; 
MemoryStream baos = new MemoryStream(); 
bitmap.Compress(Bitmap.CompressFormat.Png, 100, baos); 
byte[] bb = baos.ToArray(); 
String image = Base64.Encode(bb, Base64Flags.Default).ToString(); 

me.Iは、C#で、このコードをimplemetingい喜ば私はbase64文字列形式にImageViewのイメージをエンコードしようとしていますが、私はこのaboueラインにSystem.InvalidCastException:指定されたキャストが無効です。 Xamarinで

BitmapDrawable drawable = (BitmapDrawable)UserAvatar.GetDrawableState(); 

で投げた例外を取得していますXamarin

答えて

0

として示すように、あなたがGetDrawable()を使用する必要がありますImageViewのから引き出し可能を取得するに はすでにGetDrawableState()戻りint32[]値を指摘しました。


にBase64で変換画像で以下のコードを参照してください。 これは時々お手伝いをします。ビットマップへ

をBase64:Base64での

public Bitmap Base64ToBitmap(String base64String) 
{ 
    byte[] imageAsBytes = Base64.Decode(base64String, Base64Flags.Default); 
    return BitmapFactory.DecodeByteArray(imageAsBytes, 0, imageAsBytes.Length); 
} 

ビットマップ:

public String BitmapToBase64(Bitmap bitmap) 
{ 
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
    bitmap.Compress(Bitmap.CompressFormat.Png, 100, byteArrayOutputStream); 
    byte[] byteArray = byteArrayOutputStream.ToByteArray(); 
    return Base64.EncodeToString(byteArray, Base64Flags.Default); 
} 
関連する問題