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

VBA Access Discussion :

GetExifData & GPSExifReader: Adaptation de codes [AC-2002]


Sujet :

VBA Access

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    AutoEntrepreneur Photo
    Inscrit en
    Avril 2015
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : AutoEntrepreneur Photo
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2015
    Messages : 141
    Par défaut GetExifData & GPSExifReader: Adaptation de codes
    Bonjour à tous,
    Je cherche à récupérer les informations EXIF de fichiers JPEG (des photos).
    Ces informations concernent :
    1) l'auteur, la date, l'appareil photo utilisé, etc..
    2) mais aussi un autre type de données telles que les données GPS qui pourraient y figurer.
    J'ai trouvé un premier tuto: http://arkham46.developpez.com/artic...s/clexif/tuto/ qui me permet de récupérer les informations (1) auteur, date, etc. mais le code ne remonte aucune info GPS.
    Je suis donc tombé sur un autre tuto, de Wayne Phillips http://www.everythingaccess.com/tuto...rom-JPEG-files qui lui me remonte uniquement les infos (2) GPS.

    Ces codes fonctionnent tout d'eux avec un formulaire qui via un bouton permet de charger une image : un emplacement de fichier. Et ensuite les codes font l’extraction depuis cet emplacement, des EXIF vers des zones de texte.

    Mon problème est que j'ai des milliers de photo à traiter et je dois récupérer TOUTES ces infos. C'est pourquoi j'aimerai adapter chacun de ces deux codes, afin qu'ils travaillent sur toute les lignes d'une table contenant le chemin des images, car actuellement ils ne travaillent que sur un seul fichier photo à la fois..

    J'ai donc créé un fichier access neuf, sur lequel j'ai repris les deux codes existants ainsi que leurs formulaire. J'ai créé un table T_image avec les emplacement des images mais aussi les champs prêts à recevoir les EXIF.
    Je viens chercher de l'aide pour m'aider à réaliser cet adaptation. D'après mes faible connaissance je pense qu'il faudrait créer une requête qui appellerait ces fonctions?
    Cependant je ne sais pas du tout par quel bout m'y prendre: je ne sais pas si il faut que je commence par synchroniser les codes sur un seul formulaire (car la chacun fonctionne sur son formulaire)... et dans un second temps créer une requete pour travailler sur toute la table? ou alors, faut il faire deux requetes distinctes ?

    Un extrait du premier code qui permet d'extraire les infos (1) auteur, date, etc.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    Private Sub TFichier_AfterUpdate()
    ' Variable pour donnée brute
        Dim lData As Variant
    ' Gestion d'erreurs rapide
        On Error Resume Next
    ' Ouverture du nouveau fichier
        clex.OpenFile TFichier
        lData = clex.GetExifData(TagMakerNote)
    ' Taille de l'image
        ETaille.Value = clex.GetExifData(TagImageWidth) & " x " & clex.GetExifData(TagImageHeight)
    ' Vitesse ISO
        EISOSpeedRatings.Value = Format(clex.GetExifData(TagISOSpeedRatings), "\I\S\O 000")
    ' Modèle appareil
        EEquipModel.Value = clex.GetExifData(TagEquipModel)
    ' Fabricant
        EEquipMake.Value = clex.GetExifData(TagEquipMake)
    ' Version EXIF
        EExifVersion = clex.GetExifData(TagExifVersion)
    ' Description
        EImageDescription = clex.GetExifData(TagImageDescription)
    ' Auteur
        EArtist = clex.GetExifData(TagArtist)
    ' Date du cliché
        EDateTimeOriginal.Value = Format(clex.GetExifData(TagDateTimeOriginal), "d mmmm yyyy" & vbCrLf & "hh:nn:ss")
    ' Miniature
        Me.Image0.Picture = ""
        Me.Image0.PictureData = clex.GetExifData(TagThumbnailData)
    ' Temps exposition
        ' On stock  d'abord le résultat dans lData
        lData = clex.GetExifData(TagExposureTime)
        ' On obtient un tableau de 2 valeurs
        If Not IsNull(lData) Then
            If lData(1) > lData(0) Then
                ' Temps inférieur à  1 secondes
                EExposureTime.Value = "1/" & Int(lData(1) / lData(0)) & " secondes"
            Else
                ' Temps supérieur ou égal à 1 secondes
                EExposureTime.Value = Int(lData(0) / lData(1)) & " secondes"
            End If
        Else
            EExposureTime.Value = Null
        End If
    ' Point -F
        lData = clex.GetExifData(TagFNumber)
        If Not IsNull(lData) Then
            EFNumber.Value = Format(lData(0) / lData(1), "F0.0")
        Else
            EFNumber.Value = Null
        End If
    ' Flash
        lData = clex.GetExifData(TagFlash)
        If Not IsNull(lData) Then
        EFlash.Value = IIf(Mid(lData, 8, 1) = "1", "Flash déclenché", "Flash non déclenché")
        EFlash.Value = EFlash.Value & vbCrLf & Switch(Mid(lData, 4, 2) = "00", "Mode inconnu", _
                                                      Mid(lData, 4, 2) = "01", "Flash forcé", _
                                                      Mid(lData, 4, 2) = "10", "Flash désactivé", _
                                                      Mid(lData, 4, 2) = "11", "Flash auto")
        EFlash.Value = EFlash.Value & vbCrLf & Switch(Mid(lData, 2, 1) = "0", "Anti-Yeux rouges désactivé", _
                                                      Mid(lData, 2, 1) = "1", "Anti-Yeux rouges activé")
        Else
            EFlash.Value = Null
        End If
    End Sub
    Et maintenant le code de celui qui affiche les données GPS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    Private Sub btnBrowseAndOpen_Click()
     
    On Error GoTo ExifError
     
        Dim strDump As String
     
        txtOutput.Value = ""    ' Clear the output before starting.
     
        With GPSExifReader.BrowseAndOpenFile()
     
            strDump = strDump & "FilePath:                  " & .FilePath & vbCrLf
            strDump = strDump & "DateTimeOriginal:          " & .DateTimeOriginal & vbCrLf
            strDump = strDump & "GPSVersionID:              " & .GPSVersionID & vbCrLf
            strDump = strDump & "GPSLatitudeDecimal:        " & .GPSLatitudeDecimal & vbCrLf
            strDump = strDump & "GPSLongitudeDecimal:       " & .GPSLongitudeDecimal & vbCrLf
            strDump = strDump & "GPSAltitudeDecimal:        " & .GPSAltitudeDecimal & vbCrLf
     
     
            txtOutput.Value = strDump
     
        End With
     
        Exit Sub
     
    ExifError:
        MsgBox "An error has occurred in btnBrowseAndOpen_Click():" & vbCrLf & vbCrLf & Err.Description
     
    End Sub
    Les infos que je dois donc récupérer et rajouter dans la table via la requete sont :
    Pour le premier code: EExposureTime ;EFNumber ; etc.
    Pour le deuxième code: .GPSAltitudeDecimal ; .GPSLongitudeDecimal ; .GPSVersionID


    En vous remerciant par avance pour votre aide, infos, piste
    J'ai mis une version en 2002 et une version 2007-16 du fichier dans le zip


    zunk
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [Oracle] [PL/SQL] Adapter un code VB
    Par LoulouFifi dans le forum Oracle
    Réponses: 1
    Dernier message: 20/07/2006, 16h11
  2. Réponses: 7
    Dernier message: 24/03/2006, 09h25
  3. [débutant] Pb adaptation de code VBA
    Par delphineleclerc1 dans le forum Access
    Réponses: 9
    Dernier message: 28/02/2006, 12h58
  4. Réponses: 22
    Dernier message: 06/10/2005, 10h53
  5. [VBA Excel Word]Adapter un code Excel a Word
    Par Baxter67 dans le forum VBA Word
    Réponses: 4
    Dernier message: 08/08/2005, 23h43

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