Profilo di
astarius
| Nome | astarius |
|---|---|
| Indirizzo email | carlo-boledi@live.com |
| Avatar | |
| Messaggi | 2 |
-
- 2014-11-19 14:38:02
- Programma - aiuto -
- Forum >> Programmazione Python >> GUI
- Ciao a tutti,
sto creando un programma molto semplice che dovrebbe essere costituito da 3 pulsanti:
- Browse
- Upload
- Convert!
Con il primo pulsante dovrei cercare un'immagine sul PC, con il secondo la carico all'interno del programma che la tiene in memoria e il terzo pulsante deve trasformare l'immagine in una serie di caratteri ASCII.
Per ora ho creato la finestra principale con Tkinter che contiene i 3 pulsanti (ovviamente questi pulsanti non hanno ancora nessuna funzione):
# Importare il modulo Tkinter
from tkinter import *
# Costruire una classe che gestisce la finestra
class Application(Frame):
# Definire il metodo costruttore che crea oggetti grafici
def __init__(self, master=None):
f = Frame(master)
f.pack()
# Crea il bottone che permette di cercare la foto o immagine nel PC
self.search = Button(f)
self.search["text"] = "Browse"
self.search["fg"] = "blue"
self.search["command"] = self.search
self.search.pack({"side": "left"})
# Crea il bottone che permette di caricare la foto appena cercata
self.upload = Button(f)
self.upload["text"] = "Upload"
self.upload["command"] = self.upload
self.upload.pack({"side": "left"})
# Crea il bottone che permette di convertire l'immagine caricata in ASCII
self.convert = Button(f)
self.convert["text"] = "Convert!"
self.convert["command"] = self.convert
self.convert["fg"] = "green"
self.convert.pack({"side": "right"})
# corpo principale del programma
finestra = Tk()
app = Application(finestra)
finestra.mainloop()
per non rendere troppo corposa questa pagina di script (salvata come finestra_principale) pensavo di creare ora altri 3 file, uno per ogni bottone, che carica al suo interno "finestra_principale" e attiva la giusta funzione ad ogni pulsante. Per intenderci meglio, all'avvio del programma si apre la finestra principale con i 3 pulsanti e quando io clicco su uno di questi, per capire come comportarsi, il pc deve fare riferimento al secondo file corrispondente, prendendo da quest'ultimo le istruzioni di quel pulsante.
"""
finestra_principale:
-Browse ► altro file python con dentro le istruzioni per il pulsante browse
-Upload ► altro file python contenente le istruzioni per il pulsante upload
-Convert! ► altro file python contenente le istruzioni per il pulsante convert
"""
L'idea che ho in testa è semplice ma non riesco a trasformarla in codice, mi sembra troppo complesso...
Grazie per l'aiuto.
Carlo.
-
- 2014-11-14 19:02:13
- Re: Aiuto esercizio python prima esperienza
- Forum >> Blog
- Ciao a tutti,
io sto apprendendo Python, e questo esercizio, basandomi sul tutorial di script fatto da C8E, mi ha aiutato molto. Ho adattato il codice a Python 3.4 (che è la versione che utilizzo), il tutto è postato qui sotto:
from PIL import Image
image = Image.open("C:/Users/nome_utente/Desktop/images.jpg")
pixels = image.load()
width, height = image.size
for y in range(height):
for x in range(width):
if pixels[x, y] == (255, 255, 255):
print(" ", end=" "),
else:
print("#", end=" "),
print()
ho tolto il canale alpha, perchè, usando jpg, molte immagini, il 90%, sono RGB e se utilizzavo anche alpha ottenevo solo una serie di # senza senso, oppure dgli spazi vuoti senza logica. tutto questo però non riesco a farlo funzionare correttamente con qualunque immagine io scarichi.......nn capisco perchè. se l'immagine è + grande di un'icona da 70x70 pixels non funziona, inoltre non capisco perchè se uso per questo programma un'immagine di 70x70 mi salta fuori una figura 6 volte + grande della dimensione originale (e talvolta non assomiglia nemmeno all'immagine originale)...inoltre non funziona con immagini a colori, anche perchè non so l'algoritmo per poter sfruttare questo programma anche con figure diverse dal bianco e nero. Riassumo le mie curiosità x la modifica del codice:
- Come posso utilizzare il programma con immagini di dimensione compresa tra 70 e 300px?
- Come posso utilizzare il programma anche con immagini a colori?
- Come posso fare in modo che il disegno riprodotto con i simboli scelti possa essere di dimensione = o almeno simile a quella originale e non 6-7-8 volte piu grande?
Potete aiutarmi a trovare e correggere i miei errori?
Buona serata
Carlo.
