Wie Sie schreiben, exif-Daten zu Bild in Android?
Ich versuche zu schreiben User_Comment
und TAG_GPS
um ein aufgenommenes Bild in ein Android-Anwendung, die mithilfe der exif-interface, aber für einige Grund die tags scheinen nicht zu werden, die an die Bild, wenn ich das Bild anzuzeigen, die details in der Galerie.
Es scheint, dass vielleicht die tags werden nicht geschrieben, um das aufgenommene Bild als Datei-Pfad falsch sein kann. Ich denke, es könnte sein, weil ich geschrieben habe, die tags auf einen falschen Pfad für das Bild.
Wer weiß, wenn Ihr ein problem mit der Art, wie ich Schreibe die tags zu dem Bild?
Dies ist der code, speichert die exif-Daten nach dem @Charlie die folgenden Veränderungen:
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;
}
Es ist möglich, ich habe nicht an diesem Projekt gearbeitet haben, in eine Weile, ich denke, dass das problem möglicherweise darin, dass die Daten gespeichert werden, um eine temp-Bild mit dem Namen "exif" und wird nie geschrieben, um das ursprüngliche Bild.
InformationsquelleAutor Brian J | 2015-01-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie zuerst kopieren Sie die exif-Dateien, die sich hier google exif zu Ihrem Projekt, dann verwenden Sie den folgenden code :
ExifInterface verwendet, hier ist die neue, die Sie gerade hinzugefügte.
InformationsquelleAutor user51465478484
Bist du mit
exifVar.toString()
. Dieser liefert nur den Dateinamen, nicht den Pfad zu dem Bild. Wie Ihre app wird wahrscheinlich nicht in den Ordner mit Bildern, die Sie verwenden solltenexifVar.getAbsolutePath()
.Wenn Sie nicht unter das Bild in der gleichen Zeit, die Sie das Programm ausführen, den Pfad nicht richtig sein. Verwenden Sie diesen code statt:
Off-Topic:
Entsprechend Ihrer riesigen Liste importieren:
Importe
Macht dein code ganz ein bisschen kürzer. Nur zu sagen,
InformationsquelleAutor Charlie