Problème utilisation WIA avec VB 2005 [Résolu]

Signaler
Messages postés
2
Date d'inscription
vendredi 13 octobre 2006
Statut
Membre
Dernière intervention
13 juillet 2007
-
Messages postés
2
Date d'inscription
vendredi 13 octobre 2006
Statut
Membre
Dernière intervention
13 juillet 2007
-
Bonjour à tous,

J'ai un petit problème lié à l'utilisation de Windows Image Acquisition pour redimensionner et faire diverses opérations sur des images. Je précise que le code ci-dessous fonctionnait sous VB6, mais j'ai une erreur dans VB 2005 : Le programme plante sur la ligne V.add (back_color) avec l'erreur suivante : Paramètre incorrect.

Si quelqu'un pouvait m'aider, je suis un peu perdu...

Merci d'avance,

 Sub centrer_image(ByVal path As String, ByVal dest_name As String, ByVal largeur As Integer, ByVal hauteur As Integer, ByVal back_color As Long)

        Dim Img1 As Object, IP As Object, V As Object, Img2 As Object

        Dim img_name As String, file_name As String, save_name As String

        Dim i As Integer

        'Création conteneur pour l'image à manipuler

        Img1 = CreateObject("WIA.ImageFile")

        Img2 = CreateObject("WIA.ImageFile")

        'Création du gestionnaire de filtre

        IP = CreateObject("WIA.ImageProcess")

        'Chargement de l'image dans le conteneur

        Img1.LoadFile(path)

        V = CreateObject("WIA.Vector")

        V.Add(back_color)

        V.Add(back_color)

        V.Add(back_color)

        V.Add(back_color)

        Img2 = V.ImageFile(2, 2)

        IP = CreateObject("WIA.ImageProcess")

        IP.Filters.Add(IP.FilterInfos("Scale").FilterID)

        IP.Filters(1).Properties("MaximumWidth") = largeur

        IP.Filters(1).Properties("MaximumHeight") = hauteur

        IP.Filters(1).Properties("PreserveAspectRatio") = False

        Img2 = IP.Apply(Img2)

        'réinitialisation des filtres

        For i = 1 To IP.Filters.Count

            IP.Filters.Remove(i)

        Next i

        'fusionne l'image1 dans le support

        IP.Filters.Add(IP.FilterInfos("Stamp").FilterID)

        IP.Filters(1).Properties("ImageFile") = Img1

        IP.Filters(1).Properties("Left") = (largeur - Img1.Width) / 2

        IP.Filters(1).Properties("Top") = (hauteur - Img1.Height) / 2

        Img2 = IP.Apply(Img2)

        'Définition de l'emplacement de sauvegarde

        img_name = Split(path, "")(UBound(Split(path, "")))

        file_name = Split(img_name, ".")(0)

        save_name = "D:\documents and Settings\ebbx146\My Documents\My Pictures" & file_name & "_" & dest_name & ".bmp"

        'Sauvegarde de la nouvelle image

        SaveAsFile(Img2, save_name)

    End Sub

3 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
idée:
mets back_color en Integer
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
NB. ton code n'est en rien du .Net...

si les afficionados du Framework passent par là... gare à toi :p
Messages postés
2
Date d'inscription
vendredi 13 octobre 2006
Statut
Membre
Dernière intervention
13 juillet 2007

Merci ca marche à nouveau, c'etait tout bête mais je n'y avait pas pensé.

A bientot, en encore merci :)