0

У меня есть путь к SD-карте изображения. Теперь, какие следующие шаги для преобразования изображения в массив байтов, потому что я хочу загрузить изображение на сервер?Преобразование изображения в bytearray для загрузки изображения на сервер Android

Заранее спасибо.

+0

НЕ ПЕРЕЗАПУСКАЙТЕ его преждевременно. Также не используйте Bitmap для его загрузки. Просто заходите в буфер байта и пишите в выходной поток в цикле. – greenapps

ответ

1
public static byte[] toByteArray (Bitmap raw) { 

    byte[] byteArray = null; 

    try { 
     ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
     raw.compress (Bitmap.CompressFormat.JPEG, 100, stream); 
     byteArray = stream.toByteArray(); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return byteArray; 
} 
+0

Если вы поместите файл в растровое изображение, а затем скомпилируете его в jpg в определенном качестве, вы получите изображение, возможно, в другом формате и менее качественном. Так что это не ответ на вопрос. – greenapps

+0

Вы также можете использовать формат сжатия PNG, который не ухудшает качество изображения. Надеюсь, ты это знаешь. –

+0

Да, я знаю. Но ОП не сказал, что хочет PNG. И все же сначала не нужно помещать файл в растровое изображение. Могут произойти всевозможные изменения. Гораздо лучше просто загрузить файл как есть. Байт для байта. Вы можете поместить файл в bytearray без использования промежуточного растрового изображения. Тогда все байты файла будут в байтах. Только если вы сделаете это, ваш пост станет ответом на вопрос. – greenapps