【问题标题】:pick image from gallery and convert into byte data how?从图库中选择图像并如何转换为字节数据?
【发布时间】:2012-10-18 04:21:55
【问题描述】:

我需要从图库中挑选一张图片,然后将其转换为字节数据。我知道如何从画廊中挑选图片。我也知道如何将图像转换为字节数据。但问题是我转换了可绘制的图像,但现在我需要从图库中选择它并将其转换为字节码。任何帮助 谢谢 在 onClick 函数中,我使用此代码从图库中选择图像

Intent image = new Intent(Intent.ACTION_GET_CONTENT);
        image.setType("Image/*");
        startActivityForResult(image, 0);

我使用以下代码将可绘制的图像转换为字节数据。

 bm = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);
       data = new ByteArrayOutputStream(); 
       bm.compress(Bitmap.CompressFormat.JPEG, 40 , data);
     bitmapdata = data.toByteArray();

现在我将如何将图像从图库转换为字节数据。 谢谢

【问题讨论】:

  • 我没有得到任何指示我该怎么做。我可以将转换为字节数据的代码粘贴到可绘制的图像中。我应该粘贴吗?
  • 您说:“我知道如何从图库中挑选图片。”您这样做的方法是什么?
  • 从drawable很容易,我只需要做R.drawable.name of image
  • 这个告诉你如何在你的存储中获取gallerty图片的路径:stackoverflow.com/questions/12123883/get-all-images-in-gallery
  • @Tamir 在这个例子中。我可以使用 selectedImagePath 代替 R.drawable.ic_launcher 进行转换

标签: android image gallery


【解决方案1】:

onActivityResult 中,您将收到Uri 到您选择的图像,如下所示:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode == PICK_IMAGE && data != null && data.getData() != null){
       Uri imageUri = data.getData();
       //....
    }
}

然后要从MediaStore 中检索它,您应该使用:

 Bitmap bitmap =
      MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);

之后,您应该像现在一样处理Bitmap

【讨论】:

  • 要检索的代码将在 onActivityResult 方法中??如果我在此方法之外使用此方法,则会收到错误 :::: - 默认构造函数无法处理隐式超级构造函数抛出的异常类型 FileNotFoundException。必须定义显式构造函数 - 默认构造函数无法处理隐式超级构造函数抛出的异常类型 IOException。必须定义显式构造函数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
  • 2020-09-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多