martes, 13 de noviembre de 2018

PRACTICA #13: MUESTRA IMÁGENES AL AZAR CON SONIDOS Y ETIQUETAS


from Tkinter import * #para crear la GUI
from PIL import Image, ImageTk #despliegue de imagenes
import os #para dar una ruta path de una carpeta o directorio
import random #para seleccionar y dar numeros aleatorios
import pygame
import threading

root = Tk() #lo uso para la ventana de app de tkinter



def main(aux):
    while aux == 1:
        global fotos, Csonido, eleccion_aleatoria, contenedor
        dir = os.path.dirname(__file__) #lo utilizo para dar una ruta de donde estan mis imagenes
        fotos = dir + "/Imagenes/"
        Csonido=dir + "/Sonidos8/" #establece la ruta hacia los sonidos
        arreglo = [1,2,3,4,5,6,7,8] #crear un areglo con el numero de las imagenes
        eleccion_aleatoria = str(arreglo.index(random.choice(arreglo))+1) #se toma un elemento del array al azar y se hace string
        hilo1 = threading.Thread(target=et)
        hilo2 = threading.Thread(target = reproducirsonido)
        hilo3 = threading.Thread(target =img)
        hilo1.start()
        hilo2.start()
        hilo3.start()
        break

def reproducirsonido():
    sonido = Csonido + eleccion_aleatoria + ".mp3"
    pygame.mixer.init()
    pygame.mixer.music.load(sonido)
    pygame.mixer.music.play()

def img():
    global tkimage
    figura = fotos + eleccion_aleatoria + ".png" #asignas la extension png a al imagen

    #Como despliego el archivo en la ventana tk
    img = Image.open(figura) #va a la ruta de la imagen y la abre
    tkimage = ImageTk.PhotoImage(img) #despliega la imagen
    etiqueta = Label(root,image=tkimage).place(x=300,y=300) #la imagen se pone en una etiqueta

def et():
    nombre_img=Label(text = "                                      ",font =("Times New Roman",20,"bold")).place(x = 60, y = 300)
    imagenes=["Cat","Dog","House","Pencil","Holy Hand Granade","3D","Flower","Car"]
    nombre_img = Label(text = imagenes [int (eleccion_aleatoria)-1],font=("Times New Roman",20,"bold")).place(x=60,y=300)


def fin():
    root.destroy()

b1 = Button(text = "Mostrar Imagenes", command = lambda: main(1)).place(x=100, y=100)
b2 = Button(text = "Terminar programa", command = fin).place(x=200,y=200)

root.geometry("500x500")
root.mainloop()





No hay comentarios:

Publicar un comentario

U4: PRACTICA #21 JUEGO EN 3D