1 pièce(s) jointe(s)
VBSript : Traitement d'image (Exif)
Bonjour,
Je cherche à effectuer par un traitement de masse en VBSript des modification d'images.
- Supperposer 3 à 6 images -> :P ça marche
- Faire pivoter l'image -> ;) pas encore cherché
- Inscrire dans l'Exif des informations -> :( ça marche pas
- Inscruster sur l'image une information -> ;) pas encore cherché
Pour ceci je me suis aidé d'un tutoriel d'ici : silkyroad.developpez.com -> VBA -> WindowsImageAcquisition
Voici le code
Code:
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 64 65 66 67 68 69 70
|
Dim MonChemin
MonChemin = AfficheRepCourant()
Function AfficheRepCourant()
Dim path
path = WScript.ScriptFullName
AfficheRepCourant = Left(path, InStrRev(path, "\"))
End Function
Dim Image01, Image0102, Image03, Image04, Image05, ImageFinal
Image01 = (MonChemin & "ImageCombinee.jpg")
ImageFinal = (MonChemin & "ImageCombineeExif.jpg")
' Sub creation_TAG_TITRE_copieImage()
Dim Img ' As ImageFile
Dim IP ' As ImageProcess
Dim v ' As Vector
Dim i ' As Integer
' Création conteneur pour l'image à manipuler
Set Img = CreateObject("WIA.imageFile")
' creation du gestionnaire de filtre
Set IP = CreateObject("WIA.imageProcess")
' création d'un vecteur
'(Un vecteur permet de créer une collection pour des valeurs du même type.)
Set v = CreateObject("WIA.Vector")
' chargement de l'image
Img.LoadFile Image01
' définit le filtre pour gérer l'EXIF
IP.Filters.Add IP.FilterInfos("Exif").FilterID
IP.Filters(1).Properties("ID") = 40091
' 40091 Titre
' 40092 Commentaire
' 40093 Auteur
' 40094 Mots clés
' spécifie le type de valeur pour le propriété du filtre:
' constante VectorOfBytesImagePropertyType = 1101 (la valeur est un vecteur)
IP.Filters(1).Properties("Type") = VectorOfBytesImagePropertyType
' voir le fichier d'aide fourni avec la librairie WIA pour
' obtenir la liste des constantes disponibles
' stocke une chaine de caractères dans le vecteur
v.SetFromString "Test de TAG 'TITRE' : utilisation de WIA v2.0"
' applique au filtre le contenu du vecteur
IP.Filters(1).Properties("Value") = v
' définit le filtre pour gérer l'EXIF
IP.Filters.Add IP.FilterInfos("Exif").FilterID
IP.Filters(2).Properties("ID") = 40092
IP.Filters(2).Properties("Type") = VectorOfBytesImagePropertyType
v.SetFromString "Test de TAG 'Commentaire' : utilisation de WIA v2.0"
IP.Filters(2).Properties("Value") = v
' définit le filtre pour gérer l'EXIF
IP.Filters.Add IP.FilterInfos("Exif").FilterID
IP.Filters(3).Properties("ID") = 40093
IP.Filters(3).Properties("Type") = VectorOfBytesImagePropertyType
v.SetFromString "Test de TAG 'Auteur' : utilisation de WIA v2.0"
IP.Filters(3).Properties("Value") = v
' application du filtre dans l'image
Set Img = IP.Apply(Img)
' sauvegarde de l'image
Img.SaveFile ImageFinal
' End Sub |
Et mon message d'erreur et le suivant :
Pièce jointe 157363
Ce qui me fais penser que j'ai rater quelque chose dans les commentaire de Silkyroad.
Citation:
IP.Filters(1).Properties("ID") = 40091
Citation:
' 40091 Titre
' 40092 Commentaire
' 40093 Auteur
' 40094 Mots clés
Citation:
' spécifie le type de valeur pour le propriété du filtre:
' constante VectorOfBytesImagePropertyType = 1101 (la valeur est un vecteur)
IP.Filters(1).Properties("Type") = VectorOfBytesImagePropertyType
Et là je bute un peux...
Quelqu'un peux m'aider a trouver c'est etat qui m'echape?
Merci D'avance.
Erreur non spécifiée : WIA.ImageProcess.1
Bonjour,
Apres plusieurs recherche.
l’erreur : Type de propriété non valide. La propriété Type doit être une valeur de l’énumération WiaImagePropertyType.
Est maintenant Résolu :P
voici le bon bout du code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| ' Définit le filtre pour gérer l'EXIF
IP.Filters.Add IP.FilterInfos("Exif").FilterID
IP.Filters(1).Properties("ID") = 40091
' 40091 Titre
' spécifie le type de valeur pour le propriété du filtre:
' constante VectorOfBytesImagePropertyType = 1101 (la valeur est un vecteur)
VectorOfBytesImagePropertyType = 1105
IP.Filters(1).Properties("Type") = VectorOfBytesImagePropertyType
' voir le fichier d'aide fourni avec la librairie WIA pour obtenir la liste
' des constantes disponibles stocke une chaine de caractères dans le vecteur
v.SetFromString "Test de TAG 'TITRE' : utilisation de WIA v2.0"
' applique au filtre le contenu du vecteur
IP.Filters(1).Properties("Value") = v |
Pour les deux autres (sans les commentaires)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| ' définit le filtre pour gérer l'EXIF
IP.Filters.Add IP.FilterInfos("Exif").FilterID
IP.Filters(2).Properties("ID") = 40092
VectorOfBytesImagePropertyType = 1105
IP.Filters(2).Properties("Type") = VectorOfBytesImagePropertyType
v.SetFromString "Test de TAG 'Commentaire' : utilisation de WIA v2.0"
IP.Filters(2).Properties("Value") = v
' définit le filtre pour gérer l'EXIF
IP.Filters.Add IP.FilterInfos("Exif").FilterID
IP.Filters(3).Properties("ID") = 40093
VectorOfBytesImagePropertyType = 1105
IP.Filters(3).Properties("Type") = VectorOfBytesImagePropertyType
v.SetFromString "Test de TAG 'Auteur' : utilisation de WIA v2.0"
IP.Filters(3).Properties("Value") = v
' application du filtre dans l'image
Set Img = IP.Apply(Img)
' sauvegarde de l'image
Img.SaveFile (ImageFinal) |
:mur: Mais voila, c'est pas tous maintenant j'ai ce problème :
Ligne : 18 (par rapport au deuxième bout de code)
Caract ; 2
Erreur : Erreur non spécifiée
Code : 80004005
Source : WIA.ImageProcess.1
:?:(