2017-02-17 4 views
0

Ich habe ein Bild in Base64 über eine Online-Site konvertiert. Ich ging durch link, um Base64 String in einem String zu halten. Aber ich erhalte eine Fehlermeldung, Fehler: (38, 36) Fehler: Konstante Zeichenfolge zu langConvert base64 Zeichenfolge in Bild in Android

Bitte lassen Sie mich wissen, wie base64 in ein Bild zu umwandeln (Bitmap) in android

+0

zeigen Sie Ihren Code .. –

Antwort

2
 //encode image(from image path) to base64 string 
       ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
       Bitmap bitmap = BitmapFactory.decodeFile(pathOfYourImage); 
       bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
       byte[] imageBytes = baos.toByteArray(); 
       String imageString = Base64.encodeToString(imageBytes, Base64.DEFAULT); 

    //encode image(image from drawable) to base64 string 
       ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
       Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.yourDrawableImage); 
       bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
       byte[] imageBytes = baos.toByteArray(); 
       String imageString = Base64.encodeToString(imageBytes, Base64.DEFAULT); 
1

Haben Sie versucht, das zu verwenden, Klasse BitmapFactory?

Bitte versuchen Sie so etwas wie diese:

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT); 
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 

Auch nach dem Fehler, den Sie bekommen, scheint es, dass Sie ein statisches final String verwenden Sie codiert Base64 Zeichenfolge zu halten. In Java ist die Länge der konstanten Zeichenfolge auf 64 KB begrenzt.

1

Prüfen Sie zuerst Ihre Zeichenfolge

http://codebeautify.org/base64-to-image-converter

auf diese Weise versuchen zu konvertieren.

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ImageView image =(ImageView)findViewById(R.id.image); 

     //encode image to base64 string 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.logo); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
     byte[] imageBytes = baos.toByteArray(); 
     String imageString = Base64.encodeToString(imageBytes, Base64.DEFAULT); 

     //decode base64 string to image 
     imageBytes = Base64.decode(imageString, Base64.DEFAULT); 
     Bitmap decodedImage = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length); 
     image.setImageBitmap(decodedImage); 
    } 
} 

http://www.thecrazyprogrammer.com/2016/10/android-convert-image-base64-string-base64-string-image.html

2

Sie können den Code mit einigen anderen integrierten Methoden im Grunde nur zurück.

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT); 

Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
Verwandte Themen