Visual Basic.NET - ¿Porque mis PictureBox se enlazan?

   
Vista:

¿Porque mis PictureBox se enlazan?

Publicado por Jorge (12 intervenciones) el 15/06/2009 18:23:52
Saludos a todos los del foro:
Estoy haciendo una aplicacion en la que en cierta parte de mi formulario se modifica el Brillo de una imagen.

Tengo dos picturebox uno que se llama PicMain y otro PicBrillo.

Al querer aplicar el Brillo a la imagen PicBrillo hago lo siguiente:

PicBrillo.Image = PicMain.Image
AplicarBrillo(TrackBar1.Value, picBrillo.Image) ' Esta funcion recibe el valor del brillo y la imagen a la que se le aplicara

Pero resulta que se aplica a los dos Pictures !!!, es decir a ambos se le aplica el Brillo siendo que solo se lo hice a la PicBrillo !!!

¿Ocurre algo al igualar las imagenes?
PicBrillo.Image = PicMain.Image

¿Se enlazan o que pasa ?, ¿como puedo corregir esto?


Espero puedan ayudarme :( en VB6 no pasaba esto.
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

RE:¿Porque mis PictureBox se enlazan?

Publicado por Joan F (129 intervenciones) el 17/06/2009 08:27:56
Hola,

La imagen del picturebox es un objeto, y en .NET los objetos funcionan por referencia. Cunado haces:

PicBrillo.Image = PicMain.Image

Provoca que los objetos Image de ambos picturebox apunten a la misma direccion de memoria (o sea a la misma imagen) provocando que cuando se modifica la imagen queda modificada para ambos picturebox.

Para solventar el problema has de usar el metodo Clone del objeto imagen que crea una copia de la imagen como un nuevo objeto image desvinculado del objeto image original.

PicBrillo.Image = PicMain.Image.Clone
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