2011-12-28 5 views
1

Мне нужно отправить изображение в android, выбранное пользователем сервлетом. У меня уже есть выбранный путь изображения в переменной selectedImagePath. Теперь мне нужно отправить этот образ вместе с другой информацией на сервер. То, что я сделал это:Отправить изображение через XML из android

Bitmap image = BitmapFactory.decodeFile(selectedImagePath); 
int height = image.getHeight(); 
int width = image.getWidth(); 
int[] pixels = new int[width * height]; 
image.getPixels(pixels, 0, width, 0, 0, width, height); 

Моя идея заключается в том, чтобы отправить значения цвета в pixel массива, как разделенные запятой строки через XML. Думаю, Integer.toHexString будет полезен. Например:

<width>300</width> 
<height>400</height> 
<data>0xffffff,0xff00ff,0xffff00,...</data> 

На стороне сервера, декодировать значения цвета и создать BufferedImage, а затем сохранить его в файловой системе с помощью ImageIO.write.

Теперь мой вопрос:

  • Является ли это правильный способ сделать это?
  • Есть ли другой лучший и эффективный способ сделать это?
+2

Почему вы не закодировать изображение в формат Base64 для легкой передачи в текстовом режиме? – Raptor

ответ

3

Шаг 1 преобразовать растровое изображение в массив байтов

Шаг-2 закодировать байт [] в Base64 и отправить

Благодаря

Смежные вопросы