Problème utilisation WIA avec VB 2005

Résolu
vincent_lap Messages postés 2 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 13 juillet 2007 - 13 juil. 2007 à 13:40
vincent_lap Messages postés 2 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 13 juillet 2007 - 13 juil. 2007 à 13:55
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 juil. 2007 à 13:45
idée:
mets back_color en Integer
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 juil. 2007 à 13:46
NB. ton code n'est en rien du .Net...

si les afficionados du Framework passent par là... gare à toi :p
0
vincent_lap Messages postés 2 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 13 juillet 2007
13 juil. 2007 à 13:55
Merci ca marche à nouveau, c'etait tout bête mais je n'y avait pas pensé.

A bientot, en encore merci :)
0
Rejoignez-nous