<div dir="ltr"><p class="MsoNormal"><span lang="EN-US">Voici un bout de code expliqué pour l'ajout des images HD non géré aussi par le standard EXIF de Android</span></p><p class="MsoNormal"><span lang="EN-US"><br></span></p><p class="MsoNormal"><span lang="EN-US">Create a
new instance of ExifInterfaceExtended, passing the original source image:</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><i>import
it.sephiroth.android.library.media.ExifInterfaceExtended;</i></span></p>
<p class="MsoNormal"><i>...</i></p><p class="MsoNormal"><i><br></i></p>
<p class="MsoNormal"><span lang="EN-US"><i>ExifInterfaceExtended
originalExif = new ExifInterfaceExtended( srcPath );</i></span></p><p class="MsoNormal"><span lang="EN-US"><i><br></i></span></p>
<p class="MsoNormal"><span lang="EN-US">Copy the
original exif tags into a temporary Bundle object:</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><i>Bundle out
= new Bundle();</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i>originalExif.copyTo(out);</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><br></span></p><p class="MsoNormal"><span lang="EN-US">When the
hi-res process is complete, create a new ExifInterfaceExtended instance passing
the path of the just created image:</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><i>newExif =
new ExifInterfaceExtended( dstPath );</i></span></p><p class="MsoNormal"><span lang="EN-US"><br></span></p>
<p class="MsoNormal"><span lang="EN-US">Copy the
temporary bundle object back to the new exif instance:</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><i>// remember
the current image width an height</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i>int
imageWidth = newExif.getAttributeInt( ExifInterfaceExtended.TAG_EXIF_IMAGE_WIDTH,
0 );</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i>int
imageLength = newExif.getAttributeInt(
ExifInterfaceExtended.TAG_EXIF_IMAGE_LENGTH, 0 );</i></span></p>
<p class="MsoNormal"><span lang="EN-US"> </span> </p>
<p class="MsoNormal"><span lang="EN-US"><i>// This
method will copy all the attributes of the </i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i>// original
EXIF into the new EXIF instance</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i>newExif.copyFrom(
out, true );</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i> </i></span> </p>
<p class="MsoNormal"><span lang="EN-US"><i>// restore
the correct tags</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i>newExif.setAttribute(
ExifInterfaceExtended.TAG_EXIF_IMAGE_WIDTH, String.valueOf( imageWidth ) );</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i>newExif.setAttribute(
ExifInterfaceExtended.TAG_EXIF_IMAGE_LENGTH, String.valueOf( imageLength ) );</i></span></p>
<p class="MsoNormal"><span lang="EN-US"> </span> </p>
<p class="MsoNormal"><span lang="EN-US"><i>// the
editor already auto rotate the image pixels</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i>newExif.setAttribute(
ExifInterfaceExtended.TAG_EXIF_ORIENTATION, "0" );</i></span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><i>// let's
update the software tag too</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i>newExif.setAttribute(
ExifInterfaceExtended.TAG_EXIF_SOFTWARE, "TonSoftEstCool" );</i></span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><i>// update
the datetime</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i>newExif.setAttribute(
ExifInterfaceExtended.TAG_EXIF_DATETIME,
ExifInterfaceExtended.getExifFormattedDate( new Date() ) );</i></span></p><p class="MsoNormal"><span lang="EN-US"><i><br></i></span></p><p class="MsoNormal"><span lang="EN-US"><i><br></i></span></p>
<p class="MsoNormal"><span lang="EN-US">Save the
new exif tags:</span></p>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US"><i>try {</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i> newExif.saveAttributes();</i></span></p>
<p class="MsoNormal"><span lang="EN-US"><i>} catch (
IOException e ) {</i></span></p>
<p class="MsoNormal"><i><span lang="EN-US"> </span>e.printStackTrace();</i></p>
<p class="MsoNormal"><i>}</i></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal">Voilà voilà! Donc je pense qu'on peut facilement charger une image en exif étendu ou directement prendre une photo dans n'importe quel API et ajouter les information provenant de la boussole.</p><p class="MsoNormal"><br></p><p class="MsoNormal">Jérôme</p></div><div class="gmail_extra"><br><div class="gmail_quote">Le 2 octobre 2014 17:36, Jérôme Seigneuret <span dir="ltr"><<a href="mailto:jseigneuret-pro@yahoo.fr" target="_blank">jseigneuret-pro@yahoo.fr</a>></span> a écrit :<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Donc Android ne respecte pas les spec de l'exif 2.<div><br><div>Il faut donc se baser sur cette librairie:</div><div><a href="https://github.com/sephiroth74/Android-Exif-Extended/tree/master/library/src/main/java/it/sephiroth/android/library/exif2" target="_blank">https://github.com/sephiroth74/Android-Exif-Extended/tree/master/library/src/main/java/it/sephiroth/android/library/exif2</a><br></div><div><br></div>Voir les lignes 735 et 736 dans<div><a href="https://github.com/sephiroth74/Android-Exif-Extended/blob/master/library/src/main/java/it/sephiroth/android/library/exif2/ExifInterface.java" target="_blank">https://github.com/sephiroth74/Android-Exif-Extended/blob/master/library/src/main/java/it/sephiroth/android/library/exif2/ExifInterface.java</a><br></div><div><br></div><div>Donc à proposer au dev de surcharger la class ExifInterface avec les paramètres du standard 2.3 ou d'embarquer cette librairie dans leur code.</div></div><div><br></div><div>Jérôme</div></div><div class="gmail_extra"><br><div class="gmail_quote">Le 2 octobre 2014 16:02, Stéphane Péneau <span dir="ltr"><<a href="mailto:stephane.peneau@wanadoo.fr" target="_blank">stephane.peneau@wanadoo.fr</a>></span> a écrit :<div><div class="h5"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Le jeudi 2 octobre 2014 15:37:17, Jérôme Seigneuret a écrit :<span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Cela peut venir de la version du format exploité et du format de<br>
stockage (type d'image). Je ne sais pas quand le GPS à été intégré<br>
dans le spéc j'ai vu ça dans l'exif 2.2 er 2.3<br>
</blockquote>
<br></span>
A priori ça vient plutôt de l'Api android qui limite les champs exif qui peuvent être écrits :<br>
<a href="http://developer.android.com/reference/android/media/ExifInterface.html" target="_blank">http://developer.android.com/<u></u>reference/android/media/<u></u>ExifInterface.html</a><br>
<a href="http://stackoverflow.com/questions/8051491/how-to-apply-additional-exif-fields-to-jpegs-in-android" target="_blank">http://stackoverflow.com/<u></u>questions/8051491/how-to-<u></u>apply-additional-exif-fields-<u></u>to-jpegs-in-android</a><br>
<br>
Stf<div><div><br>
<br>
______________________________<u></u>_________________<br>
Talk-fr mailing list<br>
<a href="mailto:Talk-fr@openstreetmap.org" target="_blank">Talk-fr@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/talk-fr" target="_blank">https://lists.openstreetmap.<u></u>org/listinfo/talk-fr</a><br>
</div></div></blockquote></div></div></div><br></div>
</blockquote></div><br></div>