我必须从Android(使用Xamarin)向我的数据库发送缩小的位图。

为此,我阅读了有关Glide或Picasso的文章。 Glide似乎是最好的图片库,因此我已经安装了Glide-Xamarin 3.7.0。

但是,我不知道如何加载现有的位图(从URI),缩减为特定的[ish]分辨率并将其保存到byte []数组中,以便与我正在调用的Web服务一起发送。

如果有人知道那个的食谱,将不胜感激。

最佳答案

最后我和毕加索一起做

var bitmap = Picasso
             .With(context)
             .Load(originalBitmapUri)
             .Resize(reqWidth, reqHeight)
             .CenterInside()
             .OnlyScaleDown()
             .Get();


这种单线返回给我调整大小的位图,从中可以调用CompressAsync(。)

using (var stream = new MemoryStream())
{
    await bitmap.CompressAsync(Bitmap.CompressFormat.Jpeg, quality, stream);
    return stream.ToArray();
}

10-07 18:18