Мне нужно отправить изображение в 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
.
Теперь мой вопрос:
- Является ли это правильный способ сделать это?
- Есть ли другой лучший и эффективный способ сделать это?
Почему вы не закодировать изображение в формат Base64 для легкой передачи в текстовом режиме? – Raptor