【问题标题】:Get image from loaded ImageView从加载的 ImageView 中获取图像
【发布时间】:2017-05-17 14:37:33
【问题描述】:

我的一些图像加载到旋转的 imageview 中时遇到了问题。我通过使用 Glide 加载图像解决了这个问题。

图像在 100 x 100 的图像视图中加载。我可以检索存储在该图像视图中的图像为 100 x 100 并将其上传到服务器而不是发送原始图像吗?

【问题讨论】:

标签: java android


【解决方案1】:

是的,你可以

public byte[] getImageFromImageView(ImageView imageView,String filePath) {
    Drawable imageDrawable = imageView.getDrawable();
    Bitmap imageBitmap = ((BitmapDrawable)imageDrawable).getBitmap();
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    imageBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
    byte[] byteArray = stream.toByteArray();
    return byteArray;
}

然后上传文件到服务器,或者你可以创建RequestBody如果你使用Retrofit将它发送到服务器。

【讨论】:

  • 是的@AlwaysConfused,如果你想上传到服务器,你应该说明你正在使用哪个库,这样我也可以帮助你
  • 嗯,我使用的是firebase存储上传,所以我只需要发送字节或一个InputStream
  • 更新代码,但我宁愿保存它的文件,然后用 OutputStream 从文件中再次读取它,这种东西你有它在你的内存中,如果它是大图像,你可能会看到内存不足错误,你可以使用 getCacheDir() 并将存在标志上的删除设置为 true
  • 在上传文件后保存并立即删除文件或检查图像是否不是太大并裁剪它可能是一个好主意。无论如何感谢代码,我现在就试试
  • 我得到的问题是位图现在保存黑色图像。那是因为我使用 Glide 将图像加载到图像视图中
猜你喜欢
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 2018-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多