Profilo di astarius

Nome astarius
Indirizzo email carlo-boledi@live.com
AvatarAvatar utenti
Messaggi2
  • 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.
  • 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.