web-dev-qa-db-ja.com

Android base64エンコードされた文字列を画像ビューに変換する

私はbase64でエンコードされた文字列をビットマップに変換して画像ビューに入れることができますが、次のようなエラーが発生します

D/skia(7490):--- decoder-> decodeはfalseを返し、ビットマップはnull値を返します

私のコードは:

byte[] imageAsBytes = Base64.decode(imageData);

image.setImageBitmap(BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length));
22
Baskar

最初に、デコードする文字列が有効であり、デコードするための意図された値があることを確認する必要があります。

filePath= Environment.getExternalStorageDirectory()
                        + "/SaudiScore/temporary_holder.jpg";
Bitmap selectedImage =  BitmapFactory.decodeFile(filePath);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
selectedImage.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] byteArray = stream.toByteArray();
String strBase64=Base64.encodeToString(byteArray, 0);

次に、エンコードした文字列をデコードし、次のようなことを実行して画像を取得します。

byte[] decodedString = Base64.decode(strBase64, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
image.setImageBitmap(decodedByte);
48
byte[] decodedString = Base64.decode(mBase64string, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0,decodedString.length);
mImageView.setImageBitmap(decodedByte);
19
String base = "Base64 string values of some image";

byte[] imageAsBytes = Base64.decode(base.getBytes(), Base64.DEFAULT);

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

image.setImageBitmap(BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length));

このコードを試してください。

6
Nikhil Dinesh

Base64文字列を画像にデコード/変換します

    imageBytes = Base64.decode(imageString, Base64.DEFAULT);
    Bitmap decodedImage = BitmapFactory.decodeByteArray(imageBytes, 0,imageBytes.length);
    image.setImageBitmap(decodedImage);
0
Aftab Alam

この方法は次のことに役立ちます。

private void setExistImage(ImageView imageView, String base64String){
    if (!base64String.isEmpty()) {
        byte[] bytes = Base64.decode(base64String, Base64.DEFAULT);
        imageView.setImageBitmap(BitmapFactory.decodeByteArray(bytes, 0, bytes.length));
    }
}
0
Hadi Note
 byte[] decodedString = Base64.decode(strBase64, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
image.setImageBitmap(decodedByte);

私は上記のソリューションを使用していました。デコードされたString is null、IllegalStateException ..のようなエラーを常に返しました。

0
Abraham Mathew