Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Como Cargar Una Imagen Al Azar En Un Picturebox
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Como Cargar Una Imagen Al Azar En Un Picturebox 
 
Hola a todos. tengo una carpeta con imágenes dentro de la carpeta del programa  , 1,png, 2.png, 3.png. etc. Necesito que al pulsar un boton, al azar se cargue una de las imagenes en el picturebox. Me pueden orientar un poco, pues estoy desorientado. No logro centrarme para sacarle punta a este problemita.
Perdonen la simpleza de la pregunta.:mrviolet:
 



 
ivanovichenco - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cargar Una Imagen Al Azar En Un Picturebox 
 
Hola Ivan!.

Creo que te ayudara este ejemplo.


PUBLIC nombredeimagenes AS NEW String[]

PUBLIC SUB Form_Open()
DIM fichero AS String

FOR EACH fichero IN Dir(User.Home & "/Imágenes/", "*.*")
  nombredeimagenes.Add(fichero)
NEXT

END


PUBLIC FUNCTION imagenazar() AS Integer
DIM r AS Integer

r = Rnd(0, nombredeimagenes.Count)
RETURN r

END


PUBLIC SUB Button1_Click()
  Imagen.Picture = Picture[User.home & "/Imágenes/" & nombredeimagenes[imagenazar()]]
END

 


Si tienes una duda sobre el código, pregunta.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cargar Una Imagen Al Azar En Un Picturebox 
 
Hola.

la verdad es simple, ya que dices que tus archivos tienen un número de nombre que imagino es correlativo. Si sabes la cantidad de archivos  "ficheros" que hay en tu carpeta contenedora. por ejemplo imagina que son 1000.

solo en una linea dentro de un botom escribes:


PUBLIC SUB Button1_Click()
  
Imagen.Picture = Picture[User.home & "/contenedora/" & Rnd(0, 1000) & ".png"]


end
si quieres mayor estructura, declarar variables, modelar funciones y todo eso....  el ejemplo de nuestro  amigo Shell es ideal

y como tu mismo dijiste amigo Ivan.. perdona la simpleza de mi respuesta.
 



 
última edición por Ronny el Miercoles, 01 Junio 2011, 14:34; editado 5 veces 
Ronny - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cargar Una Imagen Al Azar En Un Picturebox 
 
Gracias a los dos por las respuestas.
Pongo manos a la obra.
 
 



 
ivanovichenco - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cargar Una Imagen Al Azar En Un Picturebox 
 
Yo creo que la mejor solución es utilizar un DIR y obtener un string[] con todos los nombres de ficheros presentes en la carpeta.

El string[] tiene como valor mínimo 0 y como valor máximo el .MAX.

Para elegir un valor aleatorio basta con hacer un RND entre 0 y MAX. Supongamos que el valor obtenido es X. Pues la imagen a cargar es string[x]
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cargar Una Imagen Al Azar En Un Picturebox 
 
Bueno, no me cargaron al azar
Aqui esta el archivo del código fuente por si alguien me hecha una manito.
Hice varios intentos y al final me parece de esta forma la mas sencilla que debiera funcionar pero no funciona.
Le cambie de lugar las comas de la ruta pero nada. por ningún lado funciona. he mirado ejemplos de gambas pero ninguno se asimila a lo que quiero. Me quedo grande este ejercicio.

http://dl.dropbox.com/u/13566068/picture_azar.tar.gz
 



 
última edición por ivanovichenco el Miercoles, 01 Junio 2011, 17:43; editado 2 veces 
ivanovichenco - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cargar Una Imagen Al Azar En Un Picturebox 
 
Citar:
PictureBox1.Picture = Picture["imagenes/Rnd(0, 4)&.png"]

Eso está mal. No puedes concatenar un string así. En todo caso "imagenes/" & Rnd(0,4) & ".png"

Y sigo diciendo que lo que yo dije es lo mejor porque puedes utilizar cualquier nombre y extensión.

Además a mi modesto entender te falta el user.home a esa dirección.

Un saludo

 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cargar Una Imagen Al Azar En Un Picturebox 
 
PictureBox1.Picture = Picture["1.png"]
Soplo, pero me carga asi una imagen, sin user.home, por eso pienso que deberia cargar con ese codigo, pero no carga.
 



 
ivanovichenco - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cargar Una Imagen Al Azar En Un Picturebox 
 
Prueba esto:

PictureBox1.Picture = Picture.Load("imagenes/" & Int(Rnd(1, 4)) & ".png")


Suerte
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cargar Una Imagen Al Azar En Un Picturebox 
 
Bueno siguiendo con  el tema de los números aleatorios e imágenes, puedo decir que  cargar el grupo de directorio tal como lo establece nuestro amigo es una buena idea.   No soy nadie para decir si es la mejor o peor idea, creo que depende de ciertos elementos a tomar en cuenta como memoria, además de validaciones.  imagina que en la carpeta de imágenes, alguien  grabara un archivo   sin formato de imagen y aleatoriamente se tomara y picture intentara mostrarlo...     bueno muchos casos pueden pasar.... ademas  si uso png estoy estandarizando que se use un formato totalmente libre en la aplicación..  y pare de contar.    es un saco   de donde sacar cosas.......


Mi idea no es la mejor y no la presenté por serlo, sino por ser la mas corta y facil de entender tal como dijistte (Ivan)  al inicio....

yo estoy terminando una macro apliacion en la cual cada módulo carga aleatoriamente un personaje histórico y hace referencia a una imagen almacenada en disco en formato png tal como hiciste tu 1.png, 2.png..  y te digo que ese número proviene del id de la tabla....

te muestro  la interfaz gráfica.
 muestra



el código utilizado en la aplicación para la carga de la imagen  es sencillo:


PUBLIC SUB Form_Open()
'***************************************
DIM hres AS Result   'viene
DIM SQL AS String   ' viene
DIM salio, numreg AS Integer
DIM xarchivo AS String

'se inicializa la semilla para cargar el generador de números pseudoaleatorios
RANDOMIZE

'cargan los registros la tabla personajes en la variable hres
hres = Main.hconn.Exec("select * from personajes")

'cuenta el numero de registros de la tabla
numreg = hres.Count
'genera un numero pseudoaleatorio en el intervalo entre 1 y el numero de registros
salio = Int(Rnd(1, numreg))
'mueve el puntero hasta el numero pseudoaleatorio
hres.MoveTo(salio - 1)
'carga la informacion el el textLabel correspondiente
xpersonaje.Text = hres["personaje"]
xdescripcion.Text = hres["descripcion_personaje"]
'concateno el string que voy a pasar al picturebox
xarchivo = "personajes/" & salio & ".png"
'label2.Text = xarchivo
PictureBox1.Picture = Picture[xarchivo]


OBSERVA ES LO MISMO QUE TE ENVIE PERO CON UNA BDD.
y que User.home no es necesario ya que la ruta se toma como relativa desde gambas.

Alguien me preguntó un día quie que pasaba si me eliminaban las imágenes de la carpeta PERSONAJES.  y lo que hice al inicio fue un cheksum  lo que  valida que las imágenes solo se pueden eliminar desde la aplicacion. si alguien elimina alguna manualmente, un servicio de la aplicacion lo dtecta como faltante y la restaura desde una carpeta de respaldo comprimida y oculta contra una BDD.

Te confiezo que no he podido ver el código que escribiste ya que el enlace me dio problemas.   a por cierto no olvides el RANDOMIZE
Por último, esta imagn de la aplicacion que te envíe tiene cortes (editada) debido a que no se ha liberado e involucra losgos de entes gubernamentales..


PD. Recuerda que ahorita con estas herramientas es facil generar nnúmeos aleatorios... cuando utilizaba un lenguaje que no lo permitía debia recurrir a ensamblador...     y ahi si es complicado.   te dejo la rutina pra aque la guardes en tu repositorio de código

random:
    db 0b8h    ; mov ax,seed1
seed1:    db 0,0

    dec ax    ; decrement
    
randloop:
    db 35h    ; xor ax,seed2
seed2:    db 0,0
    inc ax    ;
    xchg ah,al
    xor [seed2],ax    ; 0.092
    sub ax,[seed1]
    rol al,1    ; 0.091
    xchg ah,al    ; 0.092
    sub [seed1],ax    ; change seed1
    ret
por supuesto, aqui dejas a punto los registros y entonces aplicas un método matemático predictivo como la ecuación de punto de silla de Rosenbrock u otro conocido.
 



 
última edición por Ronny el Miercoles, 01 Junio 2011, 20:28; editado 5 veces 
Ronny - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Sé Si He Cargado Imagen En Un Pictur... CanihoJR General 4 Miercoles, 20 Enero 2010, 11:56 Ver último mensaje
CanihoJR
No hay nuevos mensajes Cargar Al Azar Textos En Un Textarea ivanovichenco General 8 Domingo, 19 Junio 2011, 02:09 Ver último mensaje
ivanovichenco
No hay nuevos mensajes Como Cargar Imagen De Un Proyecto En Un Html? v3ctor General 1 Viernes, 10 Julio 2015, 17:25 Ver último mensaje
vuott
No hay nuevos mensajes Ver Imagen En Picturebox imagomundi Bases de Datos 9 Sabado, 22 Septiembre 2018, 13:41 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron