none
Recuperar nombre imagenes

    Pregunta

  • Hola buenos dias. tengo un codigo en VB.net que lo que hace es mezclar 28  imagen, una vez mesclada estas quedan alteradas los nombre de cada una de ellas. Los nombre van desde picture1.picture2.picture3 ...... hasta la picture28, lo que pretendo lograr  es  que cuando estén todas mezcladas cada una recupere su nombre verdadero. Como puedo hacer esto?? para saber cual es su nombre real. Un saludo y gracias al que pueda ayudarme.

    domingo, 18 de septiembre de 2016 7:40

Respuestas

  • Bien, fíjate que yo te decía que guardases los nombres "en el mismo sitio en donde guardes las imágenes". En este caso las estás guardando en un PictureBox, que casualmente tiene una propiedad llamada Tag que sirve para poder guardar ahí cualquier dato que quieras dejar asociado con el PictureBox. Evidentemente, lo que te interesa en tu caso es meter el nombre dentro del Tag, de esa forma siempre sabes qué nombre corresponde a cada imagen.

    Como enseñanza para el futuro, si alguna vez te surge este mismo problema de que tienes que asociar un dato a un objeto y ese objeto no tiene donde guardar el dato (es decir, si el objeto no tiene algo parecido al Tag del picturebox), entonces el truco es crear una clase heredada del tipo de objeto y dentro de esa clase hija añadir el Tag.

    domingo, 18 de septiembre de 2016 15:35

Todas las respuestas

  • No has explicado en qué consiste eso de "mezclarlas" ni cómo haces la mezcla. Pero presumiblemente, cuando haces esa operación, en algún sitio tienes que tener cargadas las imágenes y las mezclas. Pues bien, en donde quiera que sea ese sitio, tienes que conservar también los nombres de las imágenes, y mantenerlos emparejados con la imagen que les corresponde mientras haces ese proceso que has llamado "mezcla". Si lo estás haciendo en memoria con un lenguaje orientado a objetos, lo razonable es definir una clase que contenga la imagen y su nombre, y que "mezcles" los objetos de esa clase, con lo cual en todo momento se conserva emparejado el nombre original con su imagen asociada.

    Siento que mi respuesta sea así de vaga, pero es que también la pregunta era igualmente vaga, no hay suficiente información como para poder refinar más la respuesta.

    domingo, 18 de septiembre de 2016 8:57
  • Hola Alberto: La imágenes las tengo en propiedades del proyecto archivos recursos, hay te dejo el código haber si me puedes ayudarme.
     Dim listaimagenes As New List(Of Image)
            For index = 1 To 28
                Dim picture As PictureBox = Me.Controls.Item("PictureBox" + index.ToString())
                listaimagenes.Add(picture.Image)
            Next
            Dim rnd As New Random(DateTime.Now.Millisecond)
            For index = 1 To 28
                Dim pos As Integer = rnd.Next(listaimagenes.Count)
    
                Dim picture As PictureBox = Me.Controls.Item("PictureBox" + index.ToString())
                picture.Image = listaimagenes(pos)
                listaimagenes.RemoveAt(pos)
            Next

    domingo, 18 de septiembre de 2016 10:33
  • Bien, fíjate que yo te decía que guardases los nombres "en el mismo sitio en donde guardes las imágenes". En este caso las estás guardando en un PictureBox, que casualmente tiene una propiedad llamada Tag que sirve para poder guardar ahí cualquier dato que quieras dejar asociado con el PictureBox. Evidentemente, lo que te interesa en tu caso es meter el nombre dentro del Tag, de esa forma siempre sabes qué nombre corresponde a cada imagen.

    Como enseñanza para el futuro, si alguna vez te surge este mismo problema de que tienes que asociar un dato a un objeto y ese objeto no tiene donde guardar el dato (es decir, si el objeto no tiene algo parecido al Tag del picturebox), entonces el truco es crear una clase heredada del tipo de objeto y dentro de esa clase hija añadir el Tag.

    domingo, 18 de septiembre de 2016 15:35