2016-10-10 19 views
5

tôi muốn tải lên một bức ảnh từ máy ảnh của tôi trực tiếp vào một thư mục ổ đĩa:Upload ảnh để lái xe mà không cần nén

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."); 
        } 

Vì vậy, im làm điều này và nó làm việc. Vấn đề là hình ảnh của tôi trong ổ đĩa có chất lượng rất thấp và tôi cần có video chất lượng cao.

Tôi đã thử giải pháp này Converting bitmap to byteArray android

Nhưng sau đó trong ổ ảnh wasnt nhận như tập tin phương tiện truyền thông và không thể đọc nó. Tôi có thể đã thất bại một cái gì đó.

EDIT: Tôi đã thực hiện chính xác những điều tương tự đó là có https://stackoverflow.com/a/13000774/6644403 và làm theo cách này để có được Bitmap của tôi trong ActivityResult:

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

Bạn có thể muốn cung cấp một uri cho hình ảnh đầu ra, như được thảo luận trong SO [câu hỏi] này (http://stackoverflow.com/a/10272781/5995040). Nếu 'uri' không được cung cấp, ý định của máy ảnh sẽ chỉ trả lại hình thu nhỏ của ảnh. Bạn cũng có thể xem hướng dẫn này - [Chụp ảnh trong Android] (http://www.tutorialforandroid.com/2010/10/take-picture-in-android-with.html), để xem cách triển khai cách thực hiện điều này đúng. Hi vọng điêu nay co ich. –

+0

Tôi đã thử nhưng không biết tại sao tôi đã không tìm thấy một cách để có được bitmap sau khi tất cả. Khi tôi cố gắng chỉ định uri, tôi không thể truy xuất hình ảnh có kích thước đầy đủ của mình –

Trả lời

1

Đối Nhận thực tế hình ảnh con đường được xác định trước của hình ảnh chụp bằng

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

Sau khi hình ảnh chụp bạn có thể nhận được hình ảnh chụp trên con đường đó được đặt trong cameraIntent. Nếu bạn không muốn đặt đường dẫn được xác định trước thì hãy kiểm tra dữ liệu 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) {} 
} 

Tham khảo liên kết này Upload large files to Google Drive using GD API cho google drive Tải lên.

1

Tôi wasnt yêu cầu quyền WRITE_EXTERNAL_STORAGE, nó được trong manifest của tôi, nhưng kể từ api23 tôi cần phải rõ ràng và yêu cầu nếu người dùng ok.

Bây giờ rất tốt.

Các vấn đề liên quan