Redimensionner une image en VBA

cs_mickey91
Messages postés
9
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
3 avril 2007
- 3 avril 2007 à 09:59
carrivin
Messages postés
6
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
30 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)

1 réponse

carrivin
Messages postés
6
Date d'inscription
mardi 30 mars 2004
Statut
Membre
Dernière intervention
30 septembre 2008

24 mars 2008 à 12:42
A executer impérativement:

Dans démarrer executer... faire RegSvr32 WIAAut.dll

Cela marche pour "Microsoft Windows Image Acquisition 2"
0