Visual Basic.NET - picturebox

 
Vista:
Imágen de perfil de francisco
Val: 6
Ha aumentado su posición en 3 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

picturebox

Publicado por francisco (162 intervenciones) el 19/12/2009 20:03:45
alguien me podria explicar porque esto me da error

If PictureBox2.Image = PictureBox1.Image Then

instrucion
End If

si en visual basic 6 iba perfectamente
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:picturebox

Publicado por Joan F (129 intervenciones) el 21/12/2009 07:04:40
Hola,

Primero de todo, supongo que te refieres al error: "El operador '=' no está definido para los tipos 'System.Drawing.Image' y 'System.Drawing.Image'"

En VB6, este hacia muchas cosas 'por defecto' de forma que el programador no se había de preocupar de muchos detalles, pero en .NET hay cosas que el programador se ha de trabajar más. En este caso, el problema esta en que el .NET no sabe como considerar que dos imágenes son "iguales", por ese motivo el operador = no esta definido para este tipo se objeto y se deja al programador decidir como considerar si dos imágenes son iguales.

En principio, generalmente se consideran que dos objetos son iguales si "apuntan" a la misma referencia de objeto de memoria. Por ejemplo, si haces

Dim a As Object
Dim b As Object
Dim c As Object = New Object()

a = c
b = c

En este caso VB.NET considera que los objetos a y b son iguales ya que referencian al mismo objeto (en la memoria solo hay un objeto con 3 variables "apuntando" a el). Creo, pero no estoy seguro, que en VB6 el comportamiento del = comparando objetos era el mismo. Si es esto lo que buscas, en vez de comparar las dos imágenes con un =, se ha de hacer así:

If PictureBox2.Image.Equals(PictureBox1.Image) Then

En el caso que realmente lo que quieres hacer es comparar que los contenidos de las imágenes son el mismo, entonces, el proceso seria extraer las imágenes a objetos bitmap (o memory stream) y ir comparando pixel por pixel (o byte por byte para un stream) de cada una de las imágenes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de fracisco
Val: 6
Ha aumentado su posición en 3 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

RE:picturebox

Publicado por fracisco (162 intervenciones) el 22/12/2009 11:30:51
graicas tengo que probar eso que me dices pero he encontrado una solucion ma simple

if picturebox1.image is picturebox2.imagen then

intrucciones

end if
lo que he echo es cambiar el simbolo "=" por la instruccion "is"
y para lo que yo queria hacer me sobra gracias por tu explicacion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:picturebox

Publicado por vicent (1 intervención) el 11/09/2020 19:43:47
Gracias me sirvio de mucha utilidad buscaba lo mismo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar