cs_mickey91
Messages postés9Date d'inscriptionlundi 24 janvier 2005StatutMembreDernière intervention 3 avril 2007
-
3 avril 2007 à 09:59
carrivin
Messages postés6Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention30 septembre 2008
-
24 mars 2008 à 12:42
Salut,
J'ai récupéré ce bout de code sur VBFrance et j'ai qq soucis avec dans une macro VBA :
'Procédure qui redimensionne une image
Private Sub RedimensionnerImage()
Dim Img 'As Wia.ImageFile,
Dim IP 'As Wia.ImageProcess
'Création conteneur pour l'image à manipuler
Set Img = CreateObject("WIA.ImageFile")
'Création du gestionnaire de filtre
Set IP = CreateObject("WIA.ImageProcess")
'Chargement de l'image dans le conteneur
Img.LoadFile "c:\monImage.png"
'Ajoute le filtre pour redimensionner l'image (Scale)
IP.Filters.Add IP.FilterInfos("Scale").FilterID
'Définit la largeur maxi pour le redimensionnement
IP.Filters(1).Properties("MaximumWidth") = 308
'Définit la hauteur maxi pour le redimensionnement
IP.Filters(1).Properties("MaximumHeight") = 425
'remarque :
'Les proportions sont conservées. Le filtre prend en compte
'les ratios et adapte la taille pour ne pas dépasser les valeurs maxi définies.
'Application du filtre à l'image
Set Img = IP.Apply(Img)
'Enregistre l'image redimensionnée
Img.SaveFile "c:\monImage.png"
End Sub
J'ai beau mettre ou non le type à la déclaration de Img et Ip, j'obtiens une erreur "Un composant activeX ne peut pas créer d'objet." (si je ne type pas les variables) et "Incompatibilité de type" (si je les type)...
J'ai bien ajouté la référence "Microsoft Windows Image Acquisition 1.01.
Merci d'avance !
Mickey
P.S.: Sinon, quelle autre solution pour redimensionner des images par VBA (sur le disque et pas à l'affichage, pour que ça prenne moins de place)