将调整大小的位图加载到byte []数组中

时间:2017-07-18 14:23:30

标签: android xamarin xamarin.android picasso android-glide

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

为此,我读到了Glide或Picasso。 Glide似乎是最好的图片库所以我已经安装了Glide-Xamarin 3.7.0。

但我不知道如何加载现有的位图(从URI),缩小到特定的[ish]分辨率并将其保存到byte []数组中,以便通过Web服务I'我打电话。

如果有人知道那个配方,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

最后我用Picasso

做了
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();
}