2017-05-07 2 views
0

Ich habe ein Problem mit der Konvertierung von Bitmap zu Base64. Ich möchte einige Bilder von der Kamera oder Galerie posten. Wenn ich sie als Bild bekomme und ich muss zu Base64 konvertieren, aber wenn ich die Zeichenfolge bekomme und mit http://codebeautify.org/base64-to-image-converter testen, um mein Bild zu sehen. Das Ergebnis sieht sehr schlecht aus. Wie kann ich das reparieren helfen mir bitte? Hier ist mein Code:Android konvertieren Bitmap zu Base64 String Problem

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; 
} 

Antwort

0
(Bitmap)extras.get("data"); 

, dass nur eine Miniaturansicht des Bildes ist. Daher die geringe Qualität.

+0

Hallo, danke für die Antwort. Wie kann ich ein Bild von der Kamera bekommen? Edit: Ich habe das gleiche Problem auf der Galerie. –

+0

Thete sind Hunderte von Beispielen für ein Bild mit der Kamera im Internet und auf dieser Website. Dein Problem wurde so oft gemeldet. Googeln Sie einfach nach der verwendeten Absicht. – greenapps

Verwandte Themen