IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

JPEG, EXIF : redimensionnement / ajout


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 212
    Par défaut JPEG, EXIF : redimensionnement / ajout
    Je bricole une petite appli pour recadrer mes photos numériques. Pour cela, je charge le JPEG dans un TImage, puis je retaille (sélection du ratio de l'image, position du cadrage) et l'image recadrée apparait 'en temps réel' dans un second TImage.

    L'image recadrée n'est ni plus ni moins que la copie d'une partie du Bitmap de la photo d'origine. Je n'ai donc pas de problème pour redimensionner un JPEG, en passant par un TBitmap (voir FAQ).

    Mais quand j'enregistre la photo recadrée au format JPEG, et bien, je perd les infos EXIF. Je veux bien perdre le thumbnail (en fait, ça m'arrangerait), mais je souhaite conserver toutes les autres (appareil, date de prise de vue, avec/sans flash, temps d'expo, focale, etc...).

    Donc la question est :
    - Peut-on retailler un JPEG sans perdre les EXIF ?
    - Ou est-il possible d'enregistrer des infos EXIF dans un fichier qui n'en possède pas ?

    Pour info, j'utilise l'excellente unité dEXIF, et j'ai déjà potassé le guide du developper qui y est joint, mais là, je vois pas

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 940
    Billets dans le blog
    6
    Par défaut
    le TImage sauve les jpeg sans conserver les exif

    l'idée des exif, c'est de ne pas y toucher pour ne pas les altérer, puisqu'ils sont liés à la prise de vue !

    mais on peut souhaiter les récupérer et en ajouter à un cliché qui aura été modifié ou n'en possédait pas.

    il est d'ailleurs moins "dangereux" de recréer que de tripatouiller...

    quelle version de delphi utilises-tu ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 212
    Par défaut
    J'utilise D6 perso (je suis un autodidacte, et je ne fais que des applis perso, donc...)

    mais on peut souhaiter les récupérer et en ajouter à un cliché qui aura été modifié ou n'en possédait pas.
    Ben, oui, c'est justement ma deuxième question : comment en ajouter à un jpeg qui n'est possède pas ... (c'est ça que tu appelles tripatouiller ?)


    il est d'ailleurs moins "dangereux" de recréer que de tripatouiller...
    Si on me dit comment faire pour recréer un jpeg avec des exifs facilement, je prends, sinon, je m'en passerais tant pis

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 940
    Billets dans le blog
    6
    Par défaut
    ce que je voulais dire, c'est que tu ne peux pas proprement prendre les exif de ton original et juste changer la photo, la vignette... et modifier quelques données (cela dit, c'est faisable quand même, mais c'est tripatouille and co)

    voilà pourquoi il vaut mieux utiliser un truc qui les crée de A à Z : je n'en connais pas, mais j'ai quelque chose en cours - malheureusement développé en D5 : en l'essayant sous D6, j'ai un bug-de-la-mort-qui-tue sorti d'on ne sait où...

    j'essayerai de faire une dll, si je trouve le temps
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 940
    Billets dans le blog
    6
    Par défaut
    bon, j'ai trouvé la cause du bug : une fonction (avec de l'asm) pas compilée de la même manière en D5 et D6 !!!
    je pourrai t'envoyer un petit exemple si tu me fournis ton mél (en MP si tu veux)
    l'unité n'est pas complètement aboutie : pas encore de tri des données dans l'ordre croissant des tags, notamment, en écriture
    pas de doc : juste la partie interface qui est à peine commentée : j'espère que ce sera assez parlant...
    merci des retours éventuels ;-)
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 940
    Billets dans le blog
    6
    Par défaut
    oups, il faudra que je fasse un petit ajout, car aujourd'hui, pas de fonction pour coller une photo quelconque aux exif...
    je ne pense pas que ce sera bien long !
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Par défaut
    Si tu utilises DExif, ouvre le fichier ProgrammerGuide.txt, tu y trouvera ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
       Open a file, manipulate the image and save to a new file adjusting
       the EXIF size for the new file:
     
           // var MyImage:TJpegImage;
           if ImgData.ProcessFile('FileName.jpg') then
           begin
             MyImage.ReadFromFile('FileName.jpg);
             // manipulate image here
             ImgData.WriteEXIF(MyImage,'NewFile.jpg');
           end;
    Bruno

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 212
    Par défaut
    @Bruno :

    j'ai bel et bien lu le programmer's guide, et je peux en toute sincérité de dire qu'il y a une erreur. la véritable fonction à appeler n'est pas WriteExif, mais WriteExifJpeg.

    Comme cette fonction peut être appelé de plusieurs façon, voici celle que j'ai utilisée (à dire vrai, c'est la seule que j'ai réussi à faire fonctionner )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imgdata.WriteEXIFJpeg(jpg,filename,true)
    Pour info, j'ai même traduit la fonction ToLongString de imgdata.exifobj pour que les infos soit écrites en français, avec les dates et heures au format francophone... (ça va, c'était pas trop dur )

    Avec cette fonction, j'enregistre le contenu de mon TImage en JPEG avec les infos exif.

    Pour info, j'ai découvert que si vous copiez un Timage dans un autre Timage, les infos exif sont conservées, même si vous retaillez l'image (j'ai pas regardé pour un redimensionnement type strechdraw)

    @Tourlourou : à mon avis, ton projet peut en interresser beaucoup, surtout si tu arrive à en faire un composant. Car à part dEXIF (excellent soit dit au passage), j'ai pas trouvé grand chose de sérieux pour les EXIF sur le web (du moins en relation avec Delphi).

  9. #9
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Par défaut
    Je suis bien de cet avis aussi. Tourlourou, si tu y arrives, fait nous signe...

    Pendant que j'y suis, vous auriez pas une solution pour modifier une valeur et réecrire les infos EXIF (par exemple, modifier la longitude, latitude) ?

    Bruno.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 212
    Par défaut
    Peut-être en regardant dans le source de dEXIF.

    Regarde aussi sur exif.org, y'a pas mal d'infos sur les EXIF et les tag associés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JPEG, EXIF et erreur #36
    Par achambily dans le forum Delphi
    Réponses: 7
    Dernier message: 08/07/2006, 14h53
  2. Lecture des infos étendues d'un JPEG (EXIF)
    Par SheikYerbouti dans le forum Multimédia
    Réponses: 3
    Dernier message: 10/11/2005, 06h11
  3. [32 bits] Redimensionner une image JPEG/GIF/PNG...
    Par CR_Gio dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 04/10/2005, 00h57
  4. MapX, Ajouter des bmp et jpeg sur une carte ...
    Par rorodopuis dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/07/2005, 09h07
  5. Réponses: 3
    Dernier message: 29/12/2004, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo