Jul 03, 2024

Wiki

Python

Aide

edit SideBar

Search

Image Color

Instanciation

Pour dessiner dans une image :

  >>> import ImageDraw

Puis, instancier un objet Draw :

  >>> draw  =  ImageDraw.Draw(i)

où i est l'objet Image dans lequel on souhaite dessiner. Par exemple, on aurait pu faire précéder les deux lignes de codes ci-dessus par :

  >>> import Image
  >>> i = Image.new('L',(128,128))

Les méthode de la classe

Les méthodes applicables à un objet Draw sont :

arc(bbox,start,end,fill=None)
Dessine un arc, i.e. la partie comprise entre les angles start et end de l'ellipse inscrite dans la bbox donnée. Attention, dans cette méthode, les angles augmentent dans le sens des aiguilles d'une montre, contrairement à la convention habituelle de PIL. Par exemple,
  >>> import Image, ImageDraw
  >>> i=Image.new('L',(512,512))
  >>> draw = ImageDraw.Draw(i)
  >>> draw.arc((10,10,110,110),0,180,fill=128)
  >>> i.show()

dessinera un arc circulaire, centré en (100,100), et allant de l'Est au Sud-Ouest. Si l'argument fill est fournis, l'arc aura la couleur spécifiée (par défaut, l'arc est de couleur blanche).

chord(bbox,start,end,fill=None,outline=None)
Dessine un arc en reliant les extrémités. L'argument fill détermine la couleur à l'intérieur de la surface dessinée. Pour changer la couleur du bord de la surface, utiliser l'argument outline.
ellipse(bbox,fill=None,outline=None)
Trace une ellipse inscrite dans la bbox ; pour obtenir un cercle, prendre une bbox carrée. Si l'argument fill est fournis, l'intérieur de l'ellipse est remplie ; si l'on ajoute une couleur à cet argument, l'intérieur aura cette couleur. Pour changer la couleur du bord, utiliser l'argument outline (blanc par défaut).

Notons pour finir que les lignes gauche et haut de la bbox feront partie de l'ellipse, mais pas les lignes bas et droite : une bbox (0,0,10,10) génère un cercle de diamètre 10.

line(L, fill=None)
Dessine des segments. L'argument L contient les points extrémaux des segments ; cela peut être :
  • Un tuple (ou une liste) de couples, chaque couple représentant un point extrémal. Par exemple, draw.line(((10,20),(100,20))) reliera les points (10,20) et (100,20). On peut, pareillement, tracer un polygone :
  >>> draw.line(((60,60), (90,60), (90,90), (60,90), (60,60)))

dessinera un carré de 30 pixels de côté.

  • Un tuple contenant un nombre pair de valeurs :
  >>> draw.line((10,20,100,20))

Ces valeurs seront regroupées deux par deux, pour se retrouver dans la situation ci-dessus.

pieslice(bbox,start,end,fill=None,outline=None)
Dessine une part de tarte. Procède comme la méthode arc, mais relie les deux points extrémaux de l'arc au centre. Les arguments fill et outline marchent de la même manière que dans la méthode chord().
point(xy,fill=None)
Fixe la couleur du point xy à fill (la couleur par défaut est une fois encore le blanc).
polygon(L, fill=None, outline=None)
Fonctionne quasiment comme la méthode line(). La différence est que le dernier point est ici connecté au premier (pas besoin de le préciser). Les options marchent comme dans ce qui précède.
  >>> draw.polygon([(60,60), (90,60), (90,90), (60,90)], fill="red", outline="green")
text(xy,message,fill=None,font=None)
Ecrit le texte message dans l'image, tel que son coin supérieur gauche se retrouve en position xy. La couleur du texte est par défaut le blanc ; elle peut être changée avec l'argument fill. Par défaut, la police est serif de taille 11 pixels : l'argument font sert à changer cela (c.f. le module ImageFont).
textsize(message,font=None)
renvoie la taille (un couple longueur,largeur) occupée, en pixels, par le texte message dans l'image considérée. S'il n'y a pas d'argument font, la taille retournée correspondra à celle d'un texte écrit dans la pocile par défaut. Changer cet argument pour connaître la taille du texte dans une autre police.

Page Actions

Recent Changes

Group & Page

Back Links