Android将位图转换为Base64字符串问题

Android将位图转换为Base64字符串问题,android,image,bitmap,base64,Android,Image,Bitmap,Base64,我在将位图转换为Base64时遇到问题。我想发布一些来自相机或画廊的图片。当我将它们作为图像获取时,我必须转换为base64,但当我获取字符串并使用测试以查看我的图像时。结果看起来质量很差。我怎样才能解决这个问题请帮助我? 这是我的密码: protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { super.onActivityResult(requestC

我在将位图转换为Base64时遇到问题。我想发布一些来自相机或画廊的图片。当我将它们作为图像获取时,我必须转换为base64,但当我获取字符串并使用测试以查看我的图像时。结果看起来质量很差。我怎样才能解决这个问题请帮助我? 这是我的密码:

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
    switch(requestCode)
    {
        case 0:
            if(resultCode == RESULT_OK)
            {
                Bundle extras = imageReturnedIntent.getExtras();
                Bitmap selectedImage = (Bitmap)extras.get("data");
                secilenImage.setImageBitmap(selectedImage);
                String encodedImage;
                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                try
                {
                    selectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream);
                    byte[] b = stream.toByteArray();
                    encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
                    images.add(i, encodedImage);
                    Log.d("StringForCamera: ", encodedImage);
                    stream.close();
                }
                catch(IOException e)
                {
                    e.printStackTrace();
                }
                secilenImage.setImageBitmap(selectedImage);
                secilenImage.setEnabled(false);
            }
            break;
        case 1:
            if(resultCode == RESULT_OK)
            {
                Uri imageUri = imageReturnedIntent.getData();
                Bitmap selectedImage = null;
                String encodedImage;
                try
                {
                    selectedImage = MediaStore.Images.Media.getBitmap(this.getContentResolver(),imageUri);
                    ByteArrayOutputStream byteArrayBitmapStream = new ByteArrayOutputStream();
                    selectedImage.compress(Bitmap.CompressFormat.PNG, 100, byteArrayBitmapStream);
                    byte[] b = byteArrayBitmapStream.toByteArray();
                    encodedImage = Base64.encodeToString(b, Base64.NO_WRAP);
                    images.add(i, encodedImage);
                    Log.d("StringForGallery: ",encodedImage);
                }
                catch(IOException e)
                {
                    e.printStackTrace();
                }
                secilenImage.setImageBitmap(selectedImage);
                secilenImage.setEnabled(false);
            }
            break;
    }
    ++i;
}

这只是图像的缩略图。因此质量很低。

您好,谢谢您的回答。那个么我怎样才能从相机上得到图像呢?编辑:我在gallery上也有同样的问题。在互联网上和这个网站上用相机拍照有数百个例子。你的问题经常被报道。只是谷歌的使用意图。
 (Bitmap)extras.get("data");