Android: Mettez GPSTimeStamp dans les balises Jpg EXIF
Question
J'essaie de définir le "GPSTimeStamp" dans les balises exif d'un jpg via Android. La documentation est assez rare sur celui-ci:
http://developer.android.com/reference/android/media/ExifInterface .html # TAG_GPS_TIMESTAMP
Le type est String. Valeur constante: "GPSTimeStamp". Mais quel est le format exact?
Vous cherchez ici:
http://www.sno.phy.queensu.ca/ ~ phil / exiftool / TagNames / GPS.html
GPSTimeStamp: rational64u [3] (lors de l'écriture, la date est supprimée si elle est présente, et l'heure est ajustée à UTC si elle inclut un fuseau horaire)
J'ai donc besoin d'une longue valeur pour un tableau de 3 cellules? Je ne sais pas quoi mettre. J'ai obtenu une "heure UTC de ce correctif, en millisecondes depuis le 1er janvier 1970". via location.gettime ().
http://developer.android.com/reference/android /location/Location.html#getTime%28%29
Si j'écris la valeur longue sous forme de chaîne dans l'horodatage et que je vérifie les balises exif via "exif" sous Linux, j'obtiens l'erreur "dénominateur attendu". Toutes les expériences avec hh: mm: ss ou d'autres formats ont échoué. Être un peu perdu ici.
La solution
Le format approprié pour l'attribut GPSTimeStamp
pour le temps d'échantillonnage 14:22:32
est
"14/1,22/1,32/1"
Vous pouvez utiliser le code suivant:
Location location = ...; // TODO - Set location properly.
long locationTome = location.getTime();
ExifInterface imageExif = new ExifInterface("absolute_path_to_image");
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(locationTome);
int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
int minutes = calendar.get(Calendar.MINUTE);
int seconds = calendar.get(Calendar.SECOND);
String exifGPSTimestamp = hourOfDay + "/1," + minutes + "/1," + seconds + "/1";
imageExif.setAttribute("GPSTimeStamp", exifGPSTimestamp);
imageExif.saveAttributes();
Son format est similaire à celui des attributs GPSLatitude
et GPSLongitude
.Des explications utiles pour ce format peuvent également être trouvées ici: http://www.ridgesolutions.ie/index.php/2015/03/05/geotag-exif-gps-latitude-field-format/