MADRAC

Nuovo utente
Autore del topic
29 Marzo 2010
15
0
Miglior risposta
0
Ciao
sto cercando di creare da un paio di giorni
un programma in VB6 che mi permetta di confrontare 2 immagini
e indicarmi la percentuale di differenza delle due...
cercando sui vari forum ho trovato una formula ma non riesco a far si che
funzioni...
Ho creato un form con due picturebox ed un bottone
nel command button ho inserito il seguente codice

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

e su declaration ho inserito :
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!


Quando avvio il programma mi da errore di compilazione
ho provato a modificare diverse stringhe ma niente:wosd:...qualcuno sa aiutarmi???
grazie...
MANDI!!!
 
l'errore mi viene visualizzato sulla prima riga su
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
ho provato a
modificarla e a dare il nome delle mie PictureBox...
ma niente....
grazie...
 
Devi dichiararla,se non inserisci Dim ( in una routine ) o Public non riesce a dichiarare la variabile.

EDIT : Non puoi dichiararla in quel modo perchè non è una function o una Sub dichiarata da te.
 
Ultima modifica:
prova così
(ByVal img1 As PictureBox, ByVal img2 As PictureBox)
 
prova così
(ByVal img1 As PictureBox, ByVal img2 As PictureBox)

Provato..e niente grazie lo stesso...

ok adesso ho riprovato il codice iniziale
levando il command button...e cosi il programma
non mi da nessun tipo di errore però non mi dà il
calcolo della differenza!!!!
 
Ultima modifica:
Provato..e niente grazie lo stesso...

ok adesso ho riprovato il codice iniziale
levando il command button...e cosi il programma
non mi da nessun tipo di errore però non mi dà il
calcolo della differenza!!!!

Prova a dichiarare img1 e img2 come Public
 
Provo io e semmai ti posto il codice :emoji_smiley:
 
Ultima modifica:
Io ho trovato il codice originale e funziona hai sbagliato qualcosa te.

Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

Private Sub ConfrontaIMG(img1 As PictureBox, img2 As PictureBox)
Dim x, y As Integer
Dim pixel1, pixel2 As Long
Dim pixeluguali, pixeltotali1, pixeltotali2, pixeldiversi As Integer

pixeluguali = 0
pixeltotali1 = 0
pixeltotali2 = 0
pixeldiversi = 0

'confronto le due immagini (in base ai pixel)
For x = 0 To img1.ScaleWidth
For y = 0 To img1.ScaleHeight
pixel1 = GetPixel(img1.hdc, x, y)
pixel2 = GetPixel(img2.hdc, x, y)

'confronto il due pixel trovati...
If pixel1 = pixel2 Then
pixeluguali = pixeluguali + 1
Else
pixeldiversi = pixeldiversi + 1
End If
pixeltotali1 = pixeltotali1 + 1

Next y
Next x

For x = 0 To img2.ScaleWidth
For y = 0 To img2.ScaleHeight
pixeltotali2 = pixeltotali2 + 1
Next y
Next x

MsgBox "Le due Immagini hanno: " & vbCrLf & "Pixel Totali IMG 1: " & pixeltotali1 & vbCrLf & "Pixel totali IMG 2: " & pixeltotali2 & vbCrLf & pixeldiversi & " pixel DIVERSI" & vbCrLf & pixeluguali & " pixel UGUALI", vbInformation
End Sub
ATTENZIONE: per utilizzarla, nelle due picture box cambia la scala (da Twip a Pixel)
Le 2 picturebox chiamale img1 e img2
 
...si ok funziona...ma non mi esce il messaggio che mi dice:

MsgBox "Le due Immagini hanno: " & vbCrLf & "Pixel Totali IMG 1: " & pixeltotali1 & vbCrLf & "Pixel totali IMG 2:
" & pixeltotali2 & vbCrLf & pixeldiversi & " pixel DIVERSI" & vbCrLf & pixeluguali & " pixel UGUALI", vbInformation
End Sub

...e poi...posso inserire in un Button questo codice??
xche ci ho provato ma è li che mi dà gli errori...grazie