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

标签 android xamarin xamarin.android picasso android-glide

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

为此,我阅读了有关 Glide 或 Picasso 的资料。 Glide 似乎是最好的图片库,所以我安装了 Glide-Xamarin 3.7.0。

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

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

最佳答案

最后我和 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();
}

关于android - 将调整大小的位图加载到 byte[] 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45169554/

相关文章:

android - 在 Xamarin 表单中拖放

ios - 缺少 Windows 选项的远程 iOS 模拟器?

navigation - Android 上不支持全局 PushAsync,请使用 NavigationPage - Xamarin.Forms

android - 应用程序在安装时不要求互联网许可

android - 从 Android.Support.V4.Fragment 获取 imageView 的高度/宽度(始终返回零)

AndroidApplicationRecord 和 Google Analytics

android - 如何使用 OpenGL 在 Android 上绘制位图

android - 配置更改后共享元素返回/重新进入转换中断

java - 在两个分隔符之间分割

xamarin - Pushy.Register 上抛出的 PushyNetworkException