Python PIL: comment rendre la zone transparente en PNG?
j'ai utilisé PIL pour recadrer des Images, Maintenant je veux aussi rendre certaines zones rectangulaires transparentes, dire
from PIL import Image
im = Image.open("sample.png")
transparent_area = (50,80,100,200)
...
j'apprécierais vraiment un peu de code car je n'ai pas pu le trouver, Merci beaucoup à l'avance!
Cheers,
Hoff
2 réponses
import Image
import ImageDraw
im = Image.open("image.png")
transparent_area = (50,80,100,200)
mask=Image.new('L', im.size, color=255)
draw=ImageDraw.Draw(mask)
draw.rectangle(transparent_area, fill=0)
im.putalpha(mask)
im.save('/tmp/output.png')
j'ai appris à faire ceci ici .
pas de code source, mais c'est l'approche générale qui devrait fonctionner: créer un canal alpha pour l'image en mode "L" (échelle de gris) comme un objet image séparé. Remplissez le canal alpha de blanc (opacité totale) et dessinez le rectangle sur l'image du canal alpha en noir (transparence totale). Convertissez l'image à laquelle vous voulez appliquer la transparence à RGBA et utilisez la méthode putalpha()
pour copier le canal alpha que vous avez créé dans le canal alpha de l'image. Enregistrer en tant que fichiers PNG.