2017-02-17 2 views
0

Я преобразовал изображение в base64 через онлайн-сайт. Я прошел через это link, чтобы провести строку base64 в строке. Но я получаю сообщение об ошибке говорящее Ошибка: (38, 36) Ошибка: постоянная строка слишком долгоПреобразование base64 строки в картинку в Android

Пожалуйста, дайте мне знать, как конвертировать base64 в изображение (растровый) в Android

+0

показать код .. –

ответ

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

Пробовали ли вы использовать класс BitmapFactory?

Пожалуйста, попробуйте что-то вроде этого:

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

Кроме того, в соответствии с ошибкой вы получаете, кажется, что вы используете статический конечный строку, чтобы держать вас закодированную строку base64. В Java длина постоянной строки ограничена 64k.

1

Прежде всего проверьте, ваша строка

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

Попробуйте способ преобразования.

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

Вы можете только в основном вернуть свой код, используя некоторые другие встроенные методы.

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

Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
Смежные вопросы