0

「content://media/external/images/media/3」のような画像のパスを取得しようとしています

それをbase64文字列に変換します。

ここに私が今持っているコードがあります:

public String ConvertandSetImagetoBase64(String imagePath) { 
    String base64 = null;
    byte[] input = null;

    try{
        FileInputStream fd = new FileInputStream(imagePath);
        Bitmap bmt = BitmapFactory.decodeFileDescriptor(fd.getFD());

        try{                
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            Bitmap tmp = ProfileActivity.scaleDownBitmap(bmt, 10, this);
            tmp.compress(Bitmap.CompressFormat.JPEG, 10, stream);
            input = stream.toByteArray();
            base64 = Base64.encodeToString(input, Base64.DEFAULT);
            //LocalProfileActivity.input = input;
        }catch(Exception e){
            Log.e(LOG_TAG,"[ONACTIVITYRESULT] Could not bind input to the bytearray: " + e.getMessage());
        }
    }
    catch (Exception e){
        Log.e("LocalProfile", "ConvertandSetImagetoBase64: Could not load selected profile image");
    }
    return base64;
}

content://media/external/images/media/3 は、メソッドに渡すものです。誰でも私を助けることができますか?

4

1 に答える 1

0

場所を URI として指定しているため、次のようなものを試すことができます。

URL url = new URL(imagePath);
Bitmap bmt = BitmapFactory.decodeStream(url.openStream());
于 2012-08-15T17:27:12.043 に答える