Android: получение байта [] от идентификатора изображения
-
12-10-2019 - |
Вопрос
Вот что я делаю:
В On ActivityResult я получаю данные в намерении.
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, TAKE_PICTURE);
Этот код получает идентификатор изображения:
data.getData().getLastPathSegment();
Теперь я хочу использовать этот идентификатор изображения, чтобы получить Byte [] Imagedata, чтобы я мог загрузить изображение на сервере.
Как мне это сделать?
Решение
Uri selectedImageUri = data.getData();
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(selectedImageUri, projection, null, null, null);
cursor.moveToFirst();
selectedImagePath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
cursor.close();
try
{
File myFile = new File(selectedImagePath);
int filelenghth=(int)myFile.length();
byte [] mybytearray = new byte [filelenghth];
BufferedInputStream bis1 = new BufferedInputStream(new FileInputStream(myFile));
bis1.read(mybytearray,0,mybytearray.length);
dos.write(mybytearray,0,mybytearray.length); // write the array to the data output stream
// or whatever else you want to do with it
finish();
}
catch(Exception e)
{
e.printStackTrace();
}
Другие советы
data.getData () вернет вам URI для вашего изображения. (Проверьте данные! = NALL первым!)
Тогда вам просто нужно выполнить HTTP -пост на ваш сервер.
См. Следующую ссылку на SO SO для Post Cod HTTP: Отправка изображений с использованием http post
Не связан с StackOverflow