Folgende Situation:
In meiner APP werden Aufgaben erfasst. Zu diesen Aufgaben kann man je 3 Fotos ablegen, die entweder frisch aufgenommen werden oder aus der Gallery geholt werden.
Klappt alles wunderbar, die Fotos haben die beste Qualität der Kamera des Handys, was für eine spätere Auswertung auch sinnvoll ist.
Allerdings werden auch PDF-Protokolle der Aufgaben erstellt. Es kommt jetzt aber zu Situationen, daß z.B. eine 15 seitige PDF-Datei sehr lange Übertragungszeiten hat.
Da die Fotos im Druck sowieso kleiner sind will ich auch die Qualiät verringern.
Problem: Vertikale Fotos werden als Low-Variante leider quer abgelegt, ich kann diese zwar drehen, aber ich drehe nur das Querfoto. Siehe dazu die Anhänge.
Ich möchte das vertikale Foto in low-Qualität auch vertikal zeigen können.
private String saveBitmap(Bitmap bitmap, Integer fotoID) throws IOException {
String returnPath = "";
String fileName = "low-" + sdf.format(Calendar.getInstance().getTime());
ContentResolver resolver = getContext().getContentResolver();
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, fileName);
contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg");
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_PICTURES);
Uri imageUri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
try {
OutputStream outputStream = resolver.openOutputStream(imageUri);
if (outputStream != null) {
bitmap.compress(Bitmap.CompressFormat.JPEG, 30, outputStream);
outputStream.close();
}
returnPath = getRealPathFromURI(getContext(), imageUri);
} catch (IOException e) {
Toast.makeText(getContext(), "Failed to save image", Toast.LENGTH_SHORT).show();
}
return returnPath;
}
Alles anzeigen