IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Comparer un fichier bmp avec le contenu d'un PictureBox


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut Comparer un fichier bmp avec le contenu d'un PictureBox
    bonjour,

    L'objet de ma question est de comparer le contenu d'une image bmp 32x32 bits sur un fichier dans My.ressource avec celle contenu dans un PictureBox 32x32 bits de mon programme.

    Le code suivant ne va pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit On
     
    Imports System.IO
    Imports System.Text
    Imports System.Threading
    Imports System.Text.RegularExpressions
    ...
    Public PicZ(120) As PictureBox 'pour pouvoir indexer les images
    ...
     
     PicZ(18) = PictureBox1
    If PicZ(18).Image = My.Resources.RBB Then Pieces = "RB"

    ou si j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     PicZ(18) = PictureBox1
            If PicZ(18).Image = "h:\sbwin\image\RB.bmp" Then Pieces = "RB"
    ça ne va pas non plus.

    Ma question : Est-ce possible de procéder ainsi pour comparer une picturebox avec un fichier image?

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    Tu peux faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
    Public Class Form1
        Private img1 As Bitmap = Nothing
        Private img2 As Bitmap = Nothing
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            img1 = New Bitmap(Application.StartupPath + "\Images\StockSnap1.jpg")
            PictureBox1.Image = img1
        End Sub
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            img1 = PictureBox1.Image
            img2 = New Bitmap(Application.StartupPath + "\Images\StockSnap2.jpg")
            Dim s1, s2 As String
            Dim flag As Boolean
            Dim count1 As Integer = 0
            Dim count2 As Integer = 0
     
            If img1.Width <> img2.Width Or img1.Height <> img2.Height Then
                MessageBox.Show("les 2 images ne peuvent etre comparees")
                Return
            End If
     
     
            For i As Integer = 0 To img1.Width - 1
                For j As Integer = 0 To img1.Height - 1
                    s1 = img1.GetPixel(i, j).ToString()
                    s2 = img2.GetPixel(i, j).ToString()
                    If (s1 <> s2) Then
                        count2 += 1
                        flag = False
                        Exit For
                    End If
                    count1 += 1
                Next
            Next
            If (flag = False) Then
                MessageBox.Show("Images Non Identiques " + count2 + " pixels discordants trouvés ")
            Else
                MessageBox.Show("Images Non Identiques  " + count1 + " pixels trouvés et  " + count2 + " pixels discordants trouvés")
            End If
     
     
        End Sub
     
     
    End Class
    A tester avec 2 images(de même taille) identiques et non identiques...
    bon code...

  3. #3
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Bonsoir,

    Génial ça marche!

    C'est exactement ce que je cherche et même plus, cerise sur le gâteau, avec la comparaison des pixels !

    Un grand merci pour ce petit programme, je vais l'adapter à ma base.

    Bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comparer 2 fichiers xml avec C#
    Par ttttnht dans le forum C#
    Réponses: 2
    Dernier message: 15/01/2010, 17h46
  2. Réponses: 1
    Dernier message: 16/03/2009, 22h30
  3. Impossible d'ouvrir un fichier BMP avec fopen
    Par pitistef dans le forum C
    Réponses: 2
    Dernier message: 25/11/2007, 13h26
  4. Création d'un fichier .bmp avec PrintWindow
    Par Irken dans le forum Windows
    Réponses: 8
    Dernier message: 05/09/2007, 18h03
  5. Peut-on ouvrir un fichier bmp avec la lib X11 ?
    Par caesarvanou dans le forum C
    Réponses: 7
    Dernier message: 10/02/2006, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo