Преобразование imageview в base64 и сохранение его в mysql и как декодировать его в Android - PullRequest
0 голосов
/ 07 июня 2018

Я закодировал изображение с помощью base64 и передал это значение в textview как скрытое, поскольку я успешно вставил его в базу данных.мой код для кодирования:

public void convertImg(){
    imageView.buildDrawingCache();
    Bitmap bm = imageView.getDrawingCache();
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object
    byte[] b = baos.toByteArray();
    String encodedImage = Base64.encodeToString(b , Base64.DEFAULT);
    base64.setText(encodedImage);
}

Это то, что я получаю в моей базе данных MySQL.это правильно?enter image description here Мой вопрос: как его расшифровать и где его увидеть / просмотреть?

Ответы [ 3 ]

0 голосов
/ 07 июня 2018

Вы должны реализовать BitmapFactory.decodeByteArray() для декодирования вашего изображения. Строка base64 выглядит следующим образом.

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

Надеюсь, это поможет вам !!

0 голосов
/ 07 июня 2018

Ваша кодировка изображения выглядит правильно.Чтобы декодировать закодированную строку обратно в изображение, вам нужно реализовать BitmapFactory.

Сначала получите байты из закодированной строки.Затем используйте BitmapFactory для декодирования байтового массива.BitmapFactory.decodeByteArray возвращает растровое изображение, которое затем можно использовать в imageView.

byte[] b = Base64.decode(encodedString,Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(b,0,b.length);
imageView.setImageBitmap(bitmap);
0 голосов
/ 07 июня 2018

Поскольку это был тег Android, я предполагаю, что вы имеете в виду sqlite?

Не прямой ответ на ваш вопрос, но в sqlite вы можете сначала сохранить двоичный двоичный объект без преобразования в base64.Это может быть более эффективным в вашем случае, так как конвертация в / из base64 стоит.

https://www.sqlite.org/datatype3.html

...