A voir également:
- Appliquer 2 fonctions putalpha à 1 seule image
- Image iso - Guide
- Word numéro de page 1/2 - Guide
- 2 comptes whatsapp - Guide
- Acronis true image - Télécharger - Sauvegarde
- Faststone image viewer - Télécharger - Visionnage & Diaporama
4 réponses
yg_be
Messages postés
22731
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 avril 2024
1 477
Modifié le 3 mai 2023 à 12:31
Modifié le 3 mai 2023 à 12:31
bonjour,
Je ne pense pas que tu puisses ainsi appliquer deux couches alpha.
Si j'étais toi, j'essaierais de jouer sur la valeur de fill pour adapter la transparence.
jee pee
Messages postés
39655
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
27 avril 2024
9 238
Modifié le 3 mai 2023 à 12:32
Modifié le 3 mai 2023 à 12:32
Bonjour,
Tu pourrais combiner les couches alpha de 2 images
from PIL import Image from PIL import ImageDraw from PIL import ImageFilter def circle_transparent(pil_img, blur_radius, offset=0): offset = blur_radius * 2 + offset mask = Image.new("L", pil_img.size, 0) draw = ImageDraw.Draw(mask) draw.ellipse((offset, offset, pil_img.size[0] - offset, pil_img.size[1] - offset), fill=255) mask = mask.filter(ImageFilter.GaussianBlur(blur_radius)) result = pil_img.copy() result.putalpha(mask) return result imagePomme = Image.open("Pomme.png") imagePomme2 = Image.new("RGBA", imagePomme.size, "white") imagePomme = circle_transparent(imagePomme, 4) imagePomme.save("Pomme_circle.png") imagePomme2.putalpha(70) imagePomme2.save("Pomme_putalpha.png") imagePomme3 = Image.alpha_composite(imagePomme, imagePomme2) imagePomme3.save("Pomme_mixed.png") imagePomme3.show()
jee pee
Messages postés
39655
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
27 avril 2024
9 238
30 avril 2023 à 10:22
30 avril 2023 à 10:22
Déjà il faudrait donner le code. Puis, il faut tout exposer au départ. Si on n'a pas le problème dans sa totalité, on ne va pas imaginer, ni prendre en compte, ce qu'on ignore et qui se passe après.
Salut.
D'abord récupérer le canal alpha de ton image, puis appliquer la transparence voulue à l'image, ensuite, créer une nouvelle image en mode RGBA, y copier l'image d'origine en utilisant en mask le canal alpha précédemment récupéré.
Ce qui donne :
# Puis après je souhaite rendre légèrement transparente l'image, j'utilise donc la fonction image_pomme = Image.open("Pomme_circle.png") # récupération des parties alpha de l'image mask = image_pomme.getchannel('A') # mask.show() # application d'une transparence sur toute l'image image_pomme.putalpha(160) # nouvelle image en mode rgba img = Image.new('RGBA', imagePomme.size) # copie de image_pomme sur l'image en utilisant le mask alpha img.paste(image_pomme, (0, 0, *image_pomme.size), mask) img.show() # enregister img si besoin.
30 avril 2023 à 10:13
Comment je pourrais faire ? (je débute sur python)
30 avril 2023 à 10:22
fill=128