miércoles, 8 de mayo de 2019

Imagenes con sonido.

Programa que despliega una imagen, un audio describiéndola así como una etiqueta.


       
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

dir = os.path.dirname(__file__)  # lo utilizo para dar una ruta de donde estan mis imagenes
fotos = dir + "/Imagenes/"
Csonido = dir + "/Sonidos/"  # establece la ruta hacia los sonidos
root = Tk()  # lo uso para la ventana de app de tkinter

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
figura = fotos + eleccion_aleatoria + ".png"  # asignas la extension png a al imagen
sonido = Csonido + eleccion_aleatoria + ".mp3"


def reproducirsonido(sonido):
    pygame.init()
    pygame.mixer.music.load(sonido)
    pygame.mixer.music.play()


# 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, command=reproducirsonido(sonido))  # la imagen se pone en una etiqueta
etiqueta.pack()  # la etiqueta se despliega

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=100, y=300)

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