Chcę przesłać zdjęcie z mojego aparatu bezpośrednio do folderu napędu:Prześlij zdjęcie na dysk bez kompresji
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.");
}
Więc robię to i to działa. Problem polega na tym, że moje zdjęcia na dysku są w bardzo niskiej jakości i muszę mieć wideo wysokiej jakości.
Próbowałem już to rozwiązanie Converting bitmap to byteArray android
Ale wtedy na Dysku zdjęcie Waśniów rozpoznać jako pliku multimedialnego i nie można go odczytać. Być może coś zawiodłem.
EDIT: Zrobiłem dokładnie te same rzeczy, które tam jest https://stackoverflow.com/a/13000774/6644403 i robi w ten sposób, aby moje bitmapę w ActivityResult:
try {
mBitmapToSave = MediaStore.Images.Media.getBitmap(this.getContentResolver(), data.getData());
} catch (IOException e) {
e.printStackTrace();
}
Możesz chcieć dostarczyć URI dla obrazu wyjściowego, jak omówiono w tym SO [pytanie] (http://stackoverflow.com/a/10272781/5995040). Jeśli "uri" nie zostanie podany, intencja kamery zwróci tylko miniaturę zdjęcia. Możesz również sprawdzić ten samouczek - [Take Picture in Android] (http://www.tutorialforandroid.com/2010/10/take-picture-in-android-with.html), aby zobaczyć, jak implementacja, jak to zrobić to właściwie. Mam nadzieję że to pomoże. –
Próbowałem, ale nie wiem, dlaczego nie znalazłem sposobu, aby uzyskać bitmapę mimo wszystko. Kiedy próbuję określić uri, nie mogę pobrać pełnego obrazu –