Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Ecrire une métadonnée XMP au départ d'une autre. [ Multimédia / Image & Vidéo ] (Jeanfil777)

jeudi 15 février 2007 à 01:07:16 | Ecrire une métadonnée XMP au départ d'une autre.

Jeanfil777

Bonjour,
Je ne suis pas développeur et ne connais qu'un tout petit peu VBA. Vraiment débutant ++. Mais je comprends vite.
Je me débrouille pour ouvrir un fichier dans un répertoire, du style:
Set fso = CreateObject("Scripting.FileSystemObject")
With Application.FileSearch
    .LookIn = "C:\Mes Documents")
    .Filename = "*.*"
    .Execute
NbreFichiers = .FoundFiles.Count
For i = 1 To NbreFichiers
        Set f = fso.GetFile(.FoundFiles(i))
Next i

Voulant manipuler mes photos par lots pour les renommer, j'ai trouvé sur [ Lien ], une dll (ExifView.dll) qui me permet ce code (accès en lecture aux propriétés Exif de image1.jpg) :

Dim col As ExifTags
Dim tg As ExifTag
Dim ExifObjet As ExifPage
Dim Message As String

' create ExifPage object
Set ExifObjet = New ExifPage

' extract exif info in the file named and it will return ExifTags collection object
Set col = ExifObjet.ExtractExifInfo("C:\Mes Documents\image1.jpg")

' get all the ExifTag objects for information
For Each tg In col
      Message = Message + tg.Name + " : " + vbTab + tg.Value + vbCrLf

Next
MsgBox Message

J'aimerais maintenant accéder aux propriétés XMP de la photo, en lecture et en écriture.
(en fait, c'est pour insérer automatiquement [j'ai 7000 photos à traiter] la date de prise de vue et le nom du fichier image dans le champs XMP 'Description' correspondant aussi au champs IPTC 'Légende'... celui que Picassa permet d'afficher dans son diaporama!)
Mais ma dll ExifView.dll ne traite pas ces métadonnées XMP...

Merci de me renseigner :
1. quelle XXX.dll charger dans C:\WINDOWS\system32 (et faire tourner "regsvr32.exe XXX.dll")
2. m'écrire un bout de code qui écrive dans la 'Description' de l'image "C:\Mes Documents\image1.jpg" la date de prise de vue (format YYYY-MM-hhm°mm°ss) suivi du nom du fichier.
Merci ++
JeanFil777


jeudi 21 février 2008 à 17:56:05 | Re : Ecrire une métadonnée XMP au départ d'une autre.

hugoclavet

Essaye chilkat xmp activex...

Hugo

jeudi 21 février 2008 à 23:48:53 | Re : Ecrire une métadonnée XMP au départ d'une autre.

Jeanfil777

Merci du tuyau Hugo ... mais sur http://www.softpedia.com/get/Programming/Components-Libraries/Chilkat-XMP-ActiveX-Component.shtml,
ça revient quand-même à 149$...
Un tuyau pour un équivalent gratuit ?

JeanFil777

vendredi 29 février 2008 à 01:31:04 | Re : Ecrire une métadonnée XMP au départ d'une autre.

hugoclavet

Réponse acceptée !

Le très puissant Exiftool est gratuit. Programme en ligne de commande seulement.

Petit example pour utiliser en écriture a partir de vb. Je n'ai pas le temps de raffiner ça mais voila quand même:


Private Sub cmdÉcrit_Click()
Dim astrMotsClés() As String

Dim dDate As Date
Dim tz As New cTimeZone
Dim inta As Integer
dDate = DateAdd("h", -Val(tz.Offset), Now)
Set tz = Nothing

ReDim astrMotsClés(1 To 2)
astrMotsClés(1) = "Mot clé 1"
astrMotsClés(2) = "Mot clé 2"

ExifInfo "c:\", "C:\test.jpg"
ExifWrite "c:\", "C:\test.jpg", "Ici le titre", "Ici la description", "Ici l'auteur", 5, astrMotsClés, dDate, "Commentaire", "Copyright"
End Sub


Private Function ExifWrite(ExifToolPath As String, Fichier As String, Titre As String, _
                            Description As String, Auteur As String, _
                            Notation As Integer, MotsClés() As String, _
                            dDatePriseDeVue As Date, Commentaires As String, _
                            Copyright As String) As Double
Dim strCommandLine As String
Dim inta As Integer

strCommandLine = ExifToolPath & "exiftool "

If Titre <> "" Then
    strCommandLine = strCommandLine & "-title=""" & Titre & """ "
    strCommandLine = strCommandLine & "-XPTitle=""" & Titre & """ "
End If

If Commentaires <> "" Then
    strCommandLine = strCommandLine & "-UserComment=""" & Commentaires & """ "
    strCommandLine = strCommandLine & "-XPComment=""" & Commentaires & """ "
End If

If Description <> "" Then
    strCommandLine = strCommandLine & "-title=""" & Description & """ "
End If

If Auteur <> "" Then
    strCommandLine = strCommandLine & "-creator=""" & Auteur & """ "
    strCommandLine = strCommandLine & "-XPAuthor=""" & Auteur & """ "
End If

If Copyright <> "" Then
    strCommandLine = strCommandLine & "-xmp:rights=""" & Copyright & """ "
End If

strCommandLine = strCommandLine & "-DateTimeOriginal=""" & dDatePriseDeVue & """ "

Dim intNotationPourcent As Integer
Select Case Notation
    Case Is = 0
        intNotationPourcent = 0
    Case Is = 1
        intNotationPourcent = 1
    Case Is = 2
        intNotationPourcent = 25
    Case Is = 3
        intNotationPourcent = 50
    Case Is = 4
        intNotationPourcent = 75
    Case Is = 5
        intNotationPourcent = 99
    Case Else
        intNotationPourcent = 0
End Select

If Notation < 6 Then
    strCommandLine = strCommandLine & "-Rating=""" & Notation & """ "
    strCommandLine = strCommandLine & "-RatingPercent=""" & intNotationPourcent & """ "
Else
    strCommandLine = strCommandLine & "-Rating=5 "
    strCommandLine = strCommandLine & "-RatingPercent=""" & 99 & """ "
End If

For inta = LBound(MotsClés) To UBound(MotsClés)
    strCommandLine = strCommandLine & "-keywords=""" & MotsClés(inta) & """ "
    strCommandLine = strCommandLine & "-LastKeywordXMP=""" & MotsClés(inta) & """ "
    strCommandLine = strCommandLine & "-Subject=""" & MotsClés(inta) & """ "
Next inta

strCommandLine = strCommandLine & "-XPKeywords=""" & Join(MotsClés, ";") & """ "

strCommandLine = strCommandLine & "-k -fast " 'k pour que la fenetre ne se ferme pas, fast surement inutile en ecriture

strCommandLine = strCommandLine & """" & Fichier & """"

ExifWrite = Shell(strCommandLine, vbNormalFocus) 'Pour que la fenetre ne se ferme pas

End Function

Private Sub ExifInfo(ExifToolPath As String, Fichier As String)
Dim strCommandLine As String
Dim inta As Integer

strCommandLine = ExifToolPath & "exiftool "
strCommandLine = strCommandLine & "ScanForXMP "
strCommandLine = strCommandLine & """" & Fichier & """ -k"

Shell strCommandLine, vbNormalFocus

End Sub

Hugo


vendredi 29 février 2008 à 17:00:33 | Re : Ecrire une métadonnée XMP au départ d'une autre.

Jeanfil777

Merci ++
Je vais essayer ça d'ici une ou deux semaines (peu de temps en ce moment).
Me donneriez-vous votre email pour vous joindre au cas où... ?
Si oui, me joindre sur jean-philippe.renders(arobase)wanadoo.fr
Cordialement.

JeanFil777



Cette discussion est classé dans : fichier, message, dll, xmp, tg


Répondre à ce message

Sujets en rapport avec ce message

Message d'erreur VBA6.DLL est manquant [ par dourd1 ] BonjourVoici le petit problème que j'ai en ce momentJ'ai un fichier excel avec des macro contenant du vbaces macros on été faites sous excel 2000 ce f Comment je fait pour accéder a ma DLL ? [ par Voodoo ] Voila, j'ai fait une DLL de lecture de fichier qui le met dans une variable :-=DLL=-Public Function FileRead(fichier As String)Open fichier For Input help: fichier dll introuvable [ par mekanik ] Bonjour,Je travaille sous W2000 et VB6.Je sohaite utiliser diverses dll dans mon prog vb6, mais à chaque fois, j'ai le message 'fichier xxxx.DLL intro Comment attacher un fichier à un message mail outlook généré par une macro depuis word ? [ par julitoVB ] Salut,j'ai crée depuis word une macro permettant de générer un mail Outlook et de l'envoyer. Cependant depuis la macro word j'aimerai insérer un fichi mscorlib.dll fichier log [ par rabbiwan ] salutje developpe un progiciel en vb6 et je voudrais céer un fichier log (texte koi) qui recense les erreurs qui ont lieux durant son utilisation.mais VBA EXCEL INITIALISATION WORKBOOK [ par rifi ] Bonjour à tous,Voila j'ai un gros problème,j'ai un fichier dont une des cellules contient la fonction REchercheV(...) qui pointe vers un autre fichier Prob avec Istool et comcat.dll [ par filou ] Salut à tous,J'ai un petit prob avec Istool, quand je compile le fichier setup.lst Istool me fait une erreur sur le fichier comcat.dll :Unsafe file de Problème d'utilisation d'un dll perso [ par Fulgy ] Bonjour à tous.J'ai créé un projet de type DLL ActiveX qui me permet en gros de créer en mémoire une structure de donnée type fichier ini (avec valeur Joindre un fichier ressource a un user controle incorpore dans la dll [ par wynxo ] Voila tout est dans le titre j'ai fait un usr control dans lequel j'ai besoin d'un fichier ressource que j'aimerai bien inclure dans la dll... j'ai de message "module introuvable" dans excel [ par bordazahar ] J'ai crée un fichier excel sous excel 2000, qui comporte beaucoup de modules et de userforms à destination d'une apllication pour excel97.Le probleme


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,513 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.