从ImageView获取字节数组

时间:2014-05-09 10:17:19

标签: c# xamarin.android

我正在使用UrlImageViewHelper的端口将图片延迟加载到我的monodroid应用中的图片视图中。问题是我需要将此图像转换为字节数组,但似乎无法找到显示如何执行此操作的任何内容。

目前我有这个

var img = new ImageView(_context);
img.SetUrlDrawable(image, Resource.Drawable.image_holder);
var conv = img.ToArray<byte>();
DisplayImage(conv, lin);

这看起来是正确的,但是当我之前使用过它时,会给出例外情况。

如果文件是直接资源,我可以使用此

var icon = BitmapFactory.DecodeResource(_context.Resources, Resource.Drawable.image_holder);
using (MemoryStream stream = new MemoryStream())
{
     icon.Compress(Bitmap.CompressFormat.Png, 100, stream);
     DisplayImage(stream.ToArray(), lin);
}

1 个答案:

答案 0 :(得分:0)

我真的不知道你想用&#34;字节数组做什么&#34;的图像,但要使用上面的代码 - 存储PNG - 在ImageView上,你需要使用这样的东西:

    // Find image view.
    var imgView = this.FindViewById<ImageView>(Resource.Id.imageView);
    // Set some image
content.imgView.SetImageDrawable(this.Resources.GetDrawable(Resource.Drawable.Icon)); imgView.BuildDrawingCache ();

    // Get the bitmap content of the image view.
    Bitmap bitmap = imgView.DrawingCache;
    // Save as PNG to disk.
    string path = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), "image.png");
    using (var stream = File.OpenWrite(path))
    {
        bitmap.Compress (Bitmap.CompressFormat.Png, 100, stream);
    }
    Console.WriteLine("Image saved to {0}", path);