Données gps à inscrire dans l'EXIF d'une image jpg
charbonn
Messages postés2Date d'inscriptionlundi 26 juillet 2004StatutMembreDernière intervention14 juillet 2008
-
13 juil. 2008 à 19:56
charbonn
Messages postés2Date d'inscriptionlundi 26 juillet 2004StatutMembreDernière intervention14 juillet 2008
-
14 juil. 2008 à 17:01
Bonjour
Je tente d'écrire mes données gps dans les property d'une image jpg.
J'ai examiné les codes sources, dont le meilleur, à mon avis, ExifWorks.
Lire et encoder ou écrire des données Texte (titre, etc.) est simple.
Lire les données gps comme la latitude est déjà plus difficile.
J'y arrive avec la fonction BitConverter.toInt32(DataByte,0) pour les degrés et BitConverter.toInt32(DataByte,8) pour les minutes.
Écrire est une toute autre affaire. Je n'arrive pas à partir des valeurs int vers leur conversion en byte dans le bon format.
BitConverter.getbytes(Degre) n'engendre pas le bon codage.
Bon. Si quelqu'un travaille sur ce genre de code, je pourrai échanger avec plus de détails.
cs_niky
Messages postés168Date d'inscriptionjeudi 28 juin 2001StatutMembreDernière intervention18 octobre 20087 13 juil. 2008 à 23:05
Salut,
Je ne connais pas précisément le problème que tu tentes de résoudre mais voilà peut être quelques pistes :
- Lorsque tu convertis les degrés avec ToInt32, tu indiques un startIndex à 8. Est-ce que tu prends en compte ce décalage de 8 octets quand tu vas écrire ce que te renvoie GetBytes ?
- GetBytes ne fait rien d'autre qu'appliquer des masques binaires en utilisant les opérateurs & et >>. Après, la seule différence qui peut intervenir entre ce que renvoie GetBytes et ce que tu veux avoir est l'ordre des octets. Ne pourrais-tu pas recoder GetBytes à ta convenance ?
charbonn
Messages postés2Date d'inscriptionlundi 26 juillet 2004StatutMembreDernière intervention14 juillet 2008 14 juil. 2008 à 17:01
Merci du message
Effectivement, GetBytes n'est pas la bonne fonction. Je ne sais laquelle prendre.
Pour les caractères, comme les tags title, etc, pas de problème à écrire.
Mon véritable problème est avec la fonction image.SetpropertyItem.
Je copie avec GetpropertyItem(2) pour la latitude à partir d'une image originale bien géoréférencée et fonctionnant sur Panoramio ou autres, puis je fais une copie de cette image, lui donne la Latitude par un Setproperty directement à partir du buffer lu au getpropertyItem, pourtant, après le image.save("...nouveauNom.jpg"), la nouvelle image à une relecture ne contient plus les données gps. ???