2016-11-10 2 views
0

Я использую следующий код для кодирования растрового изображения изображения в байте [], а затем в строку, но во время кодирования в байте [] он говорит, что он не может кодировать ..Невозможно преобразовать растровое изображение изображения в byteArray

Bitmap bm = BitmapFactory.decodeFile(path); 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
     (bm).compress(Bitmap.CompressFormat.JPEG, 100, stream); 
     bm.recycle(); 
     byte[] byteFormat = stream.toByteArray(); 
     String encodedImage = Base64.encodeToString(byteFormat, Base64.NO_WRAP); 

Приложение работает нормально, но я застрял здесь. Предложите проблемы.

+0

Здесь, проверить принятый ответ: http://stackoverflow.com/questions/4830711/how-to-convert-a-image- in-base64-string – resw67

+0

'encoding it to byte []' вы компилируете растровое изображение в массив байтов jpg. После этого base64 кодирует байты в строку. Неясно, о каком действии/заявлении вы говорите. – greenapps

+0

@greenapps, то, что я действительно хочу сделать, это сохранить изображение в виде байтового массива, а затем преобразовать его в строку, затем я буду хранить эту строку, и когда захочу использовать изображение, я преобразую эту строку в массив байтов а затем отобразить изображение в некотором изображении. –

ответ

0
public static byte[] bitmapToByteArray(Bitmap bitmap){ 
    ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); 
    byte[] byteArray = stream.toByteArray(); 
    bitmap.recycle(); 
    return byteArray; 
} 
0

Попробуйте это для меня это работает :)

public String imageToBaseString(String path) { 
     BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inSampleSize = 1; 
     Bitmap bm = BitmapFactory.decodeFile(path, options); 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     bm.compress(Bitmap.CompressFormat.PNG, 100, baos); 
     byte[] b = baos.toByteArray(); 
     return Base64.encodeToString(b, Base64.DEFAULT); 
    }