Bitmap.compress NullPointerException

时间:2016-07-24 20:23:26

标签: android bitmap

我正在尝试从图库中选择一张图片,获取该图片的位图并将该位图编码为base64。但是我得到了这个错误:

尝试在空对象引用上调用虚方法'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap $ CompressFormat,int,java.io.OutputStream)'

以下是我所做的:

 private Bitmap bitmap;
 private String encodedbitmap;

 ...
 Intent intent = new Intent(Intent.ACTION_PICK);
    intent.setType("image/*");
    startActivityForResult(intent, 100);
 ...

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if(requestCode==100 && resultCode==RESULT_OK ){

        Uri selectedimg=data.getData();

        new Encodeimg().execute();

    }

 ...

 private class Encodeimg extends AsyncTask<Void,Void,Void>{
    @Override
    protected Void doInBackground(Void... params) {

        bitmap=BitmapFactory.decodeFile(selectedimg.getPath());

        ByteArrayOutputStream stream= new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG,100,stream);
        byte[] bytes=stream.toByteArray();
        encodedbitmap= Base64.encodeToString(bytes,0);
        return null;
    }

编辑:我知道NullPointerException是什么。我只是不明白为什么在这种情况下我得到了这个错误。因为我在这里看不到空对象。

0 个答案:

没有答案