Сколько способов конвертировать bitmap в строку и наоборот?

В моем приложении я хочу отправить растровое изображение на сервер в виде строки, я хочу знать, сколько способов доступно для преобразования растрового изображения в строку. Теперь я использую формат Base64 для кодирования и декодирования, он занимает немного больше памяти. Есть ли другие возможности делать то же самое по-разному, что требует меньших сумм памяти. Теперь я использую этот код.

Resources r = ShowFullImage.this.getResources(); Bitmap bm = BitmapFactory.decodeResource(r, R.drawable.col); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object byte[] b = baos.toByteArray(); String encodedImage = Base64.encodeToString(b, Base64.DEFAULT); 

 public String BitMapToString(Bitmap bitmap){ ByteArrayOutputStream baos=new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG,100, baos); byte [] b=baos.toByteArray(); String temp=Base64.encodeToString(b, Base64.DEFAULT); return temp; } 

Вот обратная процедура преобразования строки в растровое изображение, но строка должна кодировать Base64

 /** * @param encodedString * @return bitmap (from given string) */ public Bitmap StringToBitMap(String encodedString){ try { byte [] encodeByte=Base64.decode(encodedString,Base64.DEFAULT); Bitmap bitmap=BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length); return bitmap; } catch(Exception e) { e.getMessage(); return null; } } 

Да, вы можете сделать это с помощью этого кода:

String to Bitmap:

  public Bitmap StringToBitMap(String encodedString) { try { byte[] encodeByte = Base64.decode(encodedString, Base64.DEFAULT); Bitmap bitmap = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length); return bitmap; } catch (Exception e) { e.getMessage(); return null; } } 

Растровое изображение для строки:

 public String BitMapToString(Bitmap bitmap) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); byte[] b = baos.toByteArray(); String temp = Base64.encodeToString(b, Base64.DEFAULT); return temp; } 

Вы можете использовать byteArray для отправки изображений или других данных. Нет необходимости в кодировании и декодировании. И вам нужно использовать multipart body для отправки данных на сервер.