Libreria
Immagini
Aprire, ritagliare, ridimensionare e trasformare le immagini.
Funzioni 10
apri_immaginecollageconverti_immaginidifferenza_immaginidimensioni_immaginefotogrammi_gifgif_animataimmagine_asciiimmagine_da_pixelnuova_immagine
apri_immagine(percorso)#
Apre una foto o un disegno (PNG, JPEG, GIF, WebP, BMP...) come immagine.
Le foto del telefono vengono raddrizzate da sole.
variabile foto = apri_immagine("gatto.jpg")stampa(foto.larghezza)nuova_immagine(larghezza, altezza, colore = "bianco")#
Un'immagine nuova tutta di un colore.
Serve come foglio su cui disegnare. "trasparente" la fa trasparente (da salvare in PNG).
variabile cartolina = nuova_immagine(400, 300, "azzurro")immagine_da_pixel(righe, lato = 1)#
Disegno a quadretti da una lista di righe di colori.
Ogni riga è una lista di colori; nulla lascia il quadretto trasparente. lato è quanti pixel è grande ogni quadretto.
immagine_da_pixel([["rosso", "bianco"], ["bianco", "rosso"]], lato = 20)dimensioni_immagine(percorso)#
[larghezza, altezza] di un file immagine, senza aprirlo tutto.
Funziona con PNG, JPEG, GIF, BMP e WebP anche senza Pillow.
variabile misure = dimensioni_immagine("foto.jpg")collage(immagini, colonne = nulla, lato = 200, spazio = 10, sfondo = "bianco")#
Foto in una griglia.
Ogni foto entra in un quadrato di lato pixel; senza colonne la griglia è quasi quadrata.
collage(["mare.jpg", "monti.jpg", "lago.jpg"], colonne = 3).salva("vacanze.jpg")gif_animata(immagini, percorso, durata = 0.5, ripeti = vero)#
Salva un'animazione GIF.
durata è quanti secondi resta ogni fotogramma; tutte prendono le misure della prima.
gif_animata(["passo1.png", "passo2.png", "passo3.png"], "cammina.gif", 0.2)fotogrammi_gif(percorso)#
La lista delle immagini (fotogrammi) di una GIF animata.
per ogni f in fotogrammi_gif("cammina.gif") fai f.salva("fotogramma.png") finedifferenza_immagini(prima, seconda)#
Quanto sono diverse due immagini, da 0 (uguali) a 100.
Se hanno misure diverse la seconda viene adattata alla prima.
se differenza_immagini("prima.png", "dopo.png") > 5 allora stampa("È cambiato qualcosa!") fineconverti_immagini(cartella, destinazione, formato = "jpg", lato_massimo = nulla, qualita = 85)#
Tutte le foto.
Converte ogni foto di cartella nel formato e la mette in destinazione; con lato_massimo le rimpicciolisce. Restituisce la lista dei file creati.
converti_immagini("vacanze", "vacanze_piccole", "jpg", lato_massimo = 1280)immagine_ascii(immagine, larghezza = 60, caratteri = " .:-=+*#%@")#
L'immagine disegnata con le lettere.
Restituisce un testo da stampare nel terminale; i caratteri vanno dal più chiaro al più scuro.
stampa(immagine_ascii("gatto.jpg", 50))Oggetto «immagine»
Valore Leo di tipo immagine: un'immagine di Pillow (RGB/RGBA) o di :class:Pixel.
| Proprietà | Significato |
|---|---|
altezza | |
dimensioni | |
formato | |
larghezza | |
nome | |
trasparente |
.ascii(larghezza = 60)#
L'immagine disegnata con le lettere (vedi immagine_ascii).
stampa(foto.ascii(40)).bianco_e_nero()#
Toglie i colori e lascia i grigi.
apri_immagine("nonna.jpg").bianco_e_nero().salva("nonna_bn.jpg").capovolgi(direzione = "orizzontale")#
Specchia l'immagine ("orizzontale" o "verticale").
Orizzontale scambia destra e sinistra (come uno specchio), verticale alto e basso.
foto.capovolgi()foto.capovolgi("verticale").colore_pixel(x, y)#
Il colore del punto (x, y), come "#RRGGBB".
stampa(foto.colore_pixel(0, 0)).colori_dominanti(quanti = 5)#
I colori più usati nell'immagine, dal più frequente.
Utile per scegliere i colori di un sito o di un disegno che stiano bene con una foto.
stampa(apri_immagine("tramonto.jpg").colori_dominanti(3)).contorni()#
Un disegno a matita: linee scure dove l'immagine cambia, il resto bianco.
apri_immagine("casa.jpg").contorni().salva("da_colorare.png").contrasto(fattore)#
Più di 1 rende i colori più decisi, meno di 1 più slavati.
foto.contrasto(1.4).copia()#
Un'immagine nuova uguale a questa, da modificare senza toccare l'originale.
variabile piccola = foto.copia().miniatura(100).disegna_cerchio(x, y, raggio, colore = "nero", pieno = vero, spessore = 3)#
Un cerchio con centro (x, y).
stampa(foglio.disegna_cerchio(200, 150, 50, "giallo")).disegna_linea(x1, y1, x2, y2, colore = "nero", spessore = 3)#
Una linea da (x1, y1) a (x2, y2).
foglio.disegna_linea(0, 0, 400, 300, "blu", 5).disegna_rettangolo(x, y, larghezza, altezza, colore = 'nero', pieno = True, spessore = 3)#
Immagine.disegna_rettangolo(x, y, larghezza, altezza, colore = "nero", pieno = vero, spessore = 3).
Disegna un rettangolo con l'angolo in alto a sinistra in (x, y); pieno = falso fa solo il bordo.
foglio.disegna_rettangolo(20, 20, 100, 60, "#FF000080").filigrana(marchio, posizione = "basso_destra", opacita = 0.5)#
Firma o logo semitrasparente.
marchio è un testo (la tua firma) o un'immagine (un logo, rimpicciolito da solo); posizione: "alto_sinistra", "alto_destra", "basso_sinistra", "basso_destra" o "centro".
foto.filigrana("(c) Giulia 2026")foto.filigrana("logo.png", "alto_destra").imposta_pixel(x, y, colore)#
Colora un solo punto.
per ogni x in 0..99 fai foglio.imposta_pixel(x, 50, "rosso") fine.incolla(altra, x = 0, y = 0, opacita = 1)#
Mette un'altra immagine sopra questa, in (x, y).
Le parti trasparenti dell'altra lasciano vedere sotto; opacita da 0 (invisibile) a 1 (piena).
foto.incolla(apri_immagine("logo.png").miniatura(80), 10, 10, 0.7).luminosita(fattore)#
Schiarisce (più di 1) o scurisce (meno di 1) l'immagine.
1 la lascia com'è, 1.5 è più chiara del 50%, 0.5 è scura a metà.
foto.luminosita(1.3).miniatura(lato = 128)#
Rimpicciolisce l'immagine perché entri in un quadrato di lato pixel.
Mantiene le proporzioni e non ingrandisce mai.
apri_immagine("foto.jpg").miniatura(200).salva("mini.jpg").negativo()#
Scambia chiari e scuri e ogni colore con il suo opposto.
foto.negativo().nitidezza(fattore = 2)#
Rende più netti i bordi (più di 1) o più morbidi (meno di 1).
foto.nitidezza(2.5).ridimensiona(larghezza, altezza = nulla, liscio = vero)#
Cambia le misure.
Senza altezza (o con larghezza = nulla) mantiene le proporzioni. liscio = falso tiene i quadretti netti (per il pixel art).
foto.ridimensiona(800)icona.ridimensiona(64, 64).ritaglia(x, y, larghezza, altezza)#
Tiene solo il rettangolo che parte da (x, y).
foto.ritaglia(100, 50, 300, 300).ruota(gradi, sfondo = "trasparente")#
Gira l'immagine in senso orario (come l'orologio).
Con angoli non multipli di 90 l'immagine si allarga e gli angoli si riempiono con sfondo.
foto.ruota(90)foto.ruota(-45, "bianco").salva(percorso, qualita = 90)#
Scrive l'immagine in un file; il formato viene dall'estensione.
.png, .jpg, .webp, .gif, .bmp, .tiff, .ico. qualita (1-100) conta per JPEG e WebP: più bassa = file più piccolo.
foto.salva("piccola.jpg", qualita = 70).saturazione(fattore)#
Colori più vivaci (più di 1) o più spenti (meno di 1; 0 = grigio).
foto.saturazione(1.5).scrivi_testo(testo, x = 10, y = 10, colore = 'nero', dimensione = 24, carattere = None, bordo = None)#
Immagine.scrivi_testo(testo, x = 10, y = 10, colore = "nero", dimensione = 24, carattere = nulla, bordo = nulla).
Scrive un testo con l'angolo in alto a sinistra in (x, y). carattere è il nome di un font (per
foto.scrivi_testo("Buon compleanno!", 30, 30, "giallo", 60, bordo = "nero").seppia()#
Colori marroncini come nelle foto antiche.
foto.seppia().salva("antica.jpg").sfoca(raggio = 3)#
Rende l'immagine sfocata; più grande il raggio, più sfocata.
foto.sfoca(8).sostituisci_colore(vecchio, nuovo, tolleranza = 30)#
Cambia un colore con un altro.
tolleranza (0-255) dice quanto può essere diverso un colore per essere cambiato anche lui: 0 solo quello esatto. Con nuovo = "trasparente" si toglie uno sfondo.
logo.sostituisci_colore("bianco", "trasparente").salva("logo.png")