Java 从图像URI获取base64字符串

Java 从图像URI获取base64字符串,java,android,base64,Java,Android,Base64,我有一个图像的content://URI,我想把它转换成base64。我不知道怎么做 这是我的密码: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode==123 && resultCode==RES

我有一个图像的content://URI,我想把它转换成base64。我不知道怎么做

这是我的密码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==123 && resultCode==RESULT_OK) {
        Uri selectedfile = data.getData(); //The uri with the location of the file
        if (selectedfile != null) {
            Log.e("image", selectedfile.toString());
        }
    }
}

您可以使用两个步骤来完成

1-URI到位图的转换:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==123 && resultCode==RESULT_OK) {
        Uri selectedfile = data.getData(); //The uri with the location of the file
        if (selectedfile != null) {
           Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedfile);
        }
    }
}
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();  
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
byte[] byteArray = outputStream.toByteArray();

String encodedString = Base64.encodeToString(byteArray, Base64.DEFAULT);
2-位图到Base64字符串的转换:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==123 && resultCode==RESULT_OK) {
        Uri selectedfile = data.getData(); //The uri with the location of the file
        if (selectedfile != null) {
           Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedfile);
        }
    }
}
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();  
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
byte[] byteArray = outputStream.toByteArray();

String encodedString = Base64.encodeToString(byteArray, Base64.DEFAULT);
因此:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode==123 && resultCode==RESULT_OK) {
        Uri selectedfile = data.getData(); //The uri with the location of the file
        if (selectedfile != null) {
           Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedfile);

           ByteArrayOutputStream outputStream = new ByteArrayOutputStream();  
           bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
           byte[] byteArray = outputStream.toByteArray();

           //Use your Base64 String as you wish
           String encodedString = Base64.encodeToString(byteArray, Base64.DEFAULT);
        }
    }
}

你应该告诉我你在这样做时遇到了哪些问题。显示你在哪个部分遇到问题的代码我没有这部分的代码,因为我不知道如何将内容URI转换为base64。我要求您提供某种解决方案。如果您获得了一个文件://uri。那你知道谁?