risolto . Tkinter - jpg su video con tempi troppo lunghi

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
maresama
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1640
Iscrizione: mercoledì 9 gennaio 2008, 16:00

risolto . Tkinter - jpg su video con tempi troppo lunghi

Messaggio da maresama »

Per avere sul video un'immagine .JPG uso questa funzione:

Codice: Seleziona tutto

def Img(ft,r=0.9):
    from PIL import Image, ImageTk
    root = Tk()
    w = root.winfo_screenwidth()
    h = root.winfo_screenheight()
    w=int(w*r)
    h=int(h*r)
    PILFile = Image.open(ft)
    PILFile = PILFile.resize((w, h), Image.ANTIALIAS)
    Image = ImageTk.PhotoImage(PILFile) # <---
    ImageLabel = Label(root, image=Image)
    ImageLabel.image = Image
    ImageLabel.pack()
    root.mainloop()

Img(ft)        # foto.JPG

Ma occorrono 3-5 secondi per ogni cambio immagine.
1 - esiste un modo più veloce ?
2 - perchè se metto 'from PIL import Image, ImageTk' fuori della funzione mi da:
File "9prova1.py", line 2092, in Img
PILFile = Image.open(ft)
UnboundLocalError: local variable 'Image' referenced before assignment
3 - come devo fare per avere l'immagine che copra tutto il video (copertura eventuali barre ecc) ovviamente con r=1
Grazie
Ultima modifica di maresama il mercoledì 27 maggio 2015, 18:54, modificato 1 volta in totale.
Avatar utente
Claudio_F
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1463
Iscrizione: lunedì 28 maggio 2012, 18:49
Desktop: Mate/Gnome
Distribuzione: Ubu22.04

Re: Tkinter - jpg su video con tempi troppo lunghi

Messaggio da Claudio_F »

1) non so, forse mettendo tutto in un canvas... ma ho il sospetto che sia il resize a portare via la maggior parte del tempo:

Codice: Seleziona tutto

canvas = Canvas(root, width=w, height=h, highlightthickness=0)
canvas.create_image(0, 0, image=pil_image, anchor='nw')
canvas.pack()
2) Stai creando conflitto tra il nome del modulo importato e la variabile 'Image' definita nella funzione.

3) per usare una finestra full screen si può fare così:

Codice: Seleziona tutto

root.attributes('-fullscreen', True)
maresama
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1640
Iscrizione: mercoledì 9 gennaio 2008, 16:00

Re: Tkinter - jpg su video con tempi troppo lunghi

Messaggio da maresama »

Con canvas non cambia nulla: se però elimino il resize i tempi cambiano! E' proprio quello il problema (e non penso si possa far nulla)
Il full screen è perfetto!
per l'errore non avevo pensato al conflitto (imperdonabile.... a volte mi perdo in un bicchiere d'acqua!)

Grazie... e sempre molto esauriente per me. bravo! Ciao.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 6 ospiti