Python PIL: Comment dessiner une ellipse au milieu d'une image?
Je semble avoir des difficultés à obtenir ce code fonctionne:
import Image, ImageDraw
im = Image.open("1.jpg")
draw = ImageDraw.Draw(im)
draw.ellipse((60, 60, 40, 40), fill=128)
del draw
im.save('output.png')
im.show()
Cela dessine une ellipse (60,60), qui est de 40 par 40 pixels. L'image ne renvoie rien.
Ce code fonctionne très bien cependant:
draw.ellipse ((0,0,40,40), fill=128)
Il semble juste que quand j'ai changer les 2 premiers co-ords (pour l'ellipse doit être placé), il ne fonctionnera pas si elles sont plus grandes que la taille de l'ellipse. Par exemple:
draw.ellipse ((5,5,15,15), fill=128)
Fonctionne, mais ne montre qu'une partie de la rect. Alors que
draw.ellipse ((5,5,3,3), fill=128)
ne montre rien du tout.
Ce qui se passe lors du dessin d'un rectangle.
source d'informationauteur Tommo
Vous devez vous connecter pour publier un commentaire.
De la boîte englobante est un 4-tuple
(x0, y0, x1, y1)
où(x0, y0)
est en haut à gauche de la borne de la boîte et(x1, y1)
est inférieur droit lié de la boîte.Pour dessiner une ellipse au centre de l'image, vous devez définir quelle taille vous voulez que votre ellipse du cadre de sélection (variables
eX
eteY
dans mon extrait de code ci-dessous).Avec cela dit, ci-dessous est un extrait de code qui dessine une ellipse au centre de l'image:
Cela donne le résultat suivant (
1.jpg
sur la gauche,output.png
à droite):L'ellipse en fonction dessine une ellipse à l'intérieur d'un boîte englobante. Si vous avez besoin d'utiliser
draw.ellipse((40,40,60,60))
ou d'autres coordonnées de l'endroit où le haut à gauche est plus petit que celui du bas à droite.