from PIL import Image
img = Image.open('1.png')
img.save('2.png')
La prima immagine ha uno sfondo trasparente, ma quando lo salvo, la trasparenza è andato (sfondo è bianco)PIL non salva la trasparenza
Che cosa sto facendo di sbagliato?
from PIL import Image
img = Image.open('1.png')
img.save('2.png')
La prima immagine ha uno sfondo trasparente, ma quando lo salvo, la trasparenza è andato (sfondo è bianco)PIL non salva la trasparenza
Che cosa sto facendo di sbagliato?
Probabilmente l'immagine viene indicizzata (modalità "P" in PIL), quindi la trasparenza non è impostata nel canale alfa PNG, ma nelle informazioni sui metadati.
è possibile ottenere trasparente indice sfondo tavolozza con il seguente codice:
from PIL import Image
img = Image.open('1.png')
png_info = img.info
img.save('2.png', **png_info)
Info d'immagine è un dizionario, in modo da poter esaminare per vedere le informazioni che esso ha:
esempio: se si stamparlo si otterrà un output simile al seguente:
{'transparency': 7, 'gamma': 0.45454, 'dpi': (72, 72)}
le informazioni salvate non varia a seconda dello strumento che ha creato l'originale PNG, ma ciò che è importan per te ecco la chiave "trasparenza". Nell'esempio si dice che l'indice della tavolozza "7" deve essere trattato come trasparente.
si può sempre forzare il tipo da "RGBA",
img = Image.open('1.png')
img.convert('RGBA')
img.save('2.png')
Ovviamente, ma in questo modo non genererà la stessa immagine dell'originale, dal punto di vista del formato. –
+1. Ah sì, molto vero Lucas S. –
Ha funzionato, grazie! Un po 'strano, però, che quelle proprietà non sono state salvate automaticamente. –