Android: получение байта [] из идентификатора изображения

1

Вот что я делаю:

В onActivityResult я получаю данные в намерении.

 Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
 startActivityForResult(intent, TAKE_PICTURE);

Этот код получает идентификатор изображения:

data.getData().getLastPathSegment();

Теперь я хочу использовать этот идентификатор изображения, чтобы получить байт [] imageData, чтобы я мог загрузить изображение на сервер.

Как мне это сделать?

Теги:
android-camera
android-camera-intent

2 ответа

1
Лучший ответ
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();
}
  • 0
    Спасибо Абхишек. Это мне очень помогает.
0

data.getData() вернет вам URI для вашего изображения. (Сначала проверьте данные!= Null!)

вам просто нужно выполнить http-сообщение на вашем сервере.

См. следующую ссылку на SO для почтового кода http: Отправка изображений с помощью публикации Http

Ещё вопросы

Сообщество Overcoder
Наверх
Меню