Xamarin Android System.Drawing.Image 备选方案

Xamarin Android System.Drawing.Image alternative

理想情况下想做类似

的事情
AssetManager assets = this.Assets;
using (StreamReader sr = new StreamReader(assets.Open("test.png")))
{
    var img = System.Drawing.Image.FromStream(sr.BaseStream);          
}

但 Xamarin Android 不存在 System.Drawing.Image class。 我怎样才能实现上述目标?

我找到了一个替代方法来克服缺失的 System.Drawing.Image

我用过以下:

using (StreamReader sr = new StreamReader(assets.Open("test.png")))
{
    BinaryReader binreader = new BinaryReader(sr.BaseStream);
    var allData = ReadAllBytes(binreader);
    Bitmap bitmap = BitmapFactory.DecodeByteArray(allData, 0, allData.Length);
    imageView.SetImageBitmap(bitmap);
}

public static byte[] ReadAllBytes(BinaryReader reader)
{
    const int bufferSize = 4096;
    using (var ms = new MemoryStream())
    {
       byte[] buffer = new byte[bufferSize];
       int count;
       while ((count = reader.Read(buffer, 0, buffer.Length)) != 0)
             ms.Write(buffer, 0, count);
       return ms.ToArray();
    }
}