Ich versuche, eine User_Comment
und TAG_GPS
zu einem aufgenommenen Bild in einer Android-Anwendung mit der Exif-Schnittstelle zu schreiben, aber aus irgendeinem Grund werden die Tags nicht an das Bild angehängt, wenn ich die Bilddetails in der Galerie anzeigen .Wie schreibt man Exif-Daten auf ein Bild in Android?
Es scheint, dass die Tags möglicherweise nicht in das aufgenommene Bild geschrieben werden, da der Dateipfad möglicherweise falsch ist. Ich denke, das könnte daran liegen, dass ich die Tags in einen falschen Bildpfad geschrieben habe.
Weiß jemand, ob es ein Problem mit der Art ist, wie ich die Tags in das Bild schreibe?
Dies ist der Code, der die EXIF-Daten folgende @ Charlies Änderungen unter speichert:
private File getOutputPhotoFile() throws IOException {
File directory = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), getPackageName());
if (!directory.exists()) {
if (!directory.mkdirs()) {
Log.e(TAG, "Failed to create storage directory.");
return null;
}
}
String timeStamp = new SimpleDateFormat("yyyMMdd_HHmmss", Locale.ENGLISH).format(new Date());
File[] files = directory.listFiles();
File exifVar = new File(directory.getPath(), "IMG_" + timeStamp + ".jpg");
if(files.length!=0) {
File newestFile = files[files.length-1];
exifVar = new File(directory.getPath() + File.separator + newestFile.getName());
}
String mString = "Generic Text..";
ExifInterface exif = new ExifInterface(exifVar.getAbsolutePath());
exif.setAttribute("UserComment", mString);
exif.saveAttributes();
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE,
String.valueOf(latituteField.toString()));
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE,
String.valueOf(longitudeField.toString()));
exif.saveAttributes();
return exifVar;
}
Warum rufen Sie exif.saveAttributes mehrmals auf? Ich glaube, dass jedes Mal ein neues Bild entsteht. Ich frage mich, – wkhatch
Es ist möglich, ich habe nicht an diesem Projekt seit einiger Zeit gearbeitet, ich denke, das Problem könnte gewesen sein, dass die Daten in einem Temp-Bild namens "Exif" gespeichert und nie auf das Originalbild geschrieben wird. –