programas de imagenes al azar uso del librerias OS,TK,Threading
Programa que ejecute tres hilos para poder mandar al azar una imagen,sonido y texto predeterminado.(finalizado)
from Tkinter import * #para crear la GUI
from PIL import Image,ImageTk,ImageFile
import os #libreria para dar una ruta path de una carpeta o diectorio
import random #seleccionar
import pygame #ayuda a reproducir los sonidos
import time #este se utiliza para utilizar el sleep como una pausa antes de que se reproduzca el sonido
import threading
import thread
root=Tk() #lo uso para la ventana de mi aplicacion
root.geometry("500x500")
def funcion_reproducir():
print 'hilo1'
#print sonido
sonido = sonidos + "s_(" + eleccion_aleatoria + ").mp3"
pygame.mixer.init()
pygame.mixer.music.load(sonido) # trae el nombre del archivo con la extension .mp3 (en este caso, ya que tambien puede ser otro tipo de extension)
pygame.mixer.music.play() # esta linea es la que reproduce el sonido
def funcion_mostrar_imagenes():
print 'hilo2'
#print eleccion_aleatoria
figura = fotos + eleccion_aleatoria + '.png' # aqui crea el nombre de la imagen que se va a desplegar en pantalla pax
#print figura
# como despliego el archivo en la ventana Tk,para eso necesitaremos 3 cosas
# img= Image.open(figura)#guarda en img la ruta de la imagen y la busca y la guarda
global tkimage
tkimage = ImageTk.PhotoImage(Image.open(figura)) # guarda en la en tkimage
Etiqueta = Label(root, image=tkimage).place(x=20,y=10)
time.sleep(3)
def funcion_letrero():
labeldeshit = Label(text=' ', font=("Arial", 50, "bold"), ).place(x=10, y=310)
print 'hilo3'
nombres = ['CAT', 'DOG', 'HOUSE', 'PENCIL', 'WORM', '3D', 'FLOWER', 'CAR']
labeldeshit = Label(text=nombres[int(eleccion_aleatoria)-1], font=("Arial", 50, "bold"),).place(x=10, y=310)
def funcion_principal(numero):
if __name__ == '__main__':
global fotos, sonidos, eleccion_aleatoria
dir = os.path.dirname(__file__) # lo utilizo para dar una ruta de la localizacion de mis imagenes
fotos = dir + "/imagenes/"
sonidos = dir + "/Sonidos2/"
arreglo = [1, 2, 3, 4, 5, 6, 7, 8] # creacion de un arreglo con el numero de las imagenes
eleccion_aleatoria = str(arreglo.index(random.choice(arreglo)) + 1)
#como el indice empieza en cero el arreglo debo sumar 1 para que pueda empezar
hilo1=threading.Thread(target=funcion_reproducir)
hilo2=threading.Thread(target=funcion_mostrar_imagenes)
hilo3=threading.Thread(target=funcion_letrero)
hilo1.start()
hilo2.start()
hilo3.start()
print '\nse ha terminado de utilizar los hilos'
#thread.start_new_thread(funcion_letrero, (eleccion_aleatoria,))#funcion para letras sirve
#thread.start_new_thread(funcion_reproducir,(sonidos,))#sirve
#thread.start_new_thread(funcion_mostrar_imagenes,(fotos,))
button1=Button(root,text='ejecutar',command=lambda :funcion_principal(1)).place(x=300,y=10)
root.mainloop()
Comentarios
Publicar un comentario