2016-10-10 10 views
5

Я хочу, чтобы загрузить фотографию из моей камеры непосредственно в папку диска:Загрузить фото ездить без сжатия

OutputStream outputStream = result.getDriveContents().getOutputStream(); 
        ByteArrayOutputStream bitmapStream = new ByteArrayOutputStream(); 
/* image is my Bitmap */ 
        image.compress(Bitmap.CompressFormat.PNG, 100, bitmapStream); 

        try { 
         outputStream.write(bitmapStream.toByteArray()); 
        } catch (IOException e1) { 
         Log.i(TAG, "Unable to write file contents."); 
        } 

Так им делать это, и это работает. Проблема в том, что мои фотографии на диске очень низкого качества, и мне нужно иметь видео высокого качества.

Я уже пытался этим решением Converting bitmap to byteArray android

Но в Драйве фото не было признать медиа-файл и не могу читать. Возможно, я что-то провалил.

EDIT: я сделал в точности то же самое, что является там https://stackoverflow.com/a/13000774/6644403 и делать так, чтобы получить мой Bitmap в ActivityResult:

try { 
        mBitmapToSave = MediaStore.Images.Media.getBitmap(this.getContentResolver(), data.getData()); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
+0

Возможно, вы захотите предоставить uri для выходного изображения, как описано в этом SO [вопрос] (http://stackoverflow.com/a/10272781/5995040). Если «uri» не поставляется, намерение камеры вернет только миниатюру изображения. Вы также можете проверить этот учебник - [Take Picture in Android] (http://www.tutorialforandroid.com/2010/10/take-picture-in-android-with.html), чтобы узнать, как реализация того, как это сделать это правильно. Надеюсь это поможет. –

+0

Я пробовал это, но не знаю, почему я не нашел способ получить растровое изображение в конце концов. Когда я пытаюсь указать uri, я не могу получить изображение в полном размере –

ответ

1

Для Получить реальное изображение предопределенный путь Захваченные изображения с помощью

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
this.startActivityForResult(cameraIntent, 101); 

После Захваченные изображения вы можете получить захваченное изображение на пути, который установлен в cameraIntent. Если вы не хотите устанавливать предопределенный путь, проверьте данные Intent.

if (resultCode == android.app.Activity.RESULT_OK && requestCode == 101) { 
     try {   
      path_mm = "Onsuccess_resultcode"; 
      generateNoteOnSD("photo34.txt", path_mm); 
      Bitmap photo = null; 
      if (data == null) { 
         //get Bitmap here. 
      } else { 
       Uri u1 = data.getData(); 
       //get uri and find actual path on that uri. 
       } 
      }catch(Exception ex) {} 
} 

Обратится по ссылке Upload large files to Google Drive using GD API для Google диска Uploadation.

1

Я не был просить права WRITE_EXTERNAL_STORAGE, это было в моем манифесте, но так как api23 мне нужно явно и спросить, нормально ли пользователь.

Теперь это хорошо.

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

  • Нет связанных вопросов^_^