Python PIL | Método ImageDraw.Draw.polygon()

PIL es la biblioteca de imágenes de Python que proporciona al intérprete de Python capacidades de edición de imágenes. El ImageDrawmódulo proporciona gráficos 2D simples para objetos de imagen. Puede usar este módulo para crear nuevas imágenes, anotar o retocar imágenes existentes y generar gráficos sobre la marcha para uso web.

ImageDraw.Draw.polygon()Dibuja un polígono.
El contorno del polígono consta de líneas rectas entre las coordenadas dadas, más una línea recta entre la última y la primera coordenada.

Sintaxis: PIL.ImageDraw.Draw.polygon(xy, relleno=Ninguno, contorno=Ninguno)

Parámetros:

Parámetros:

xy : secuencia de 2 tuplas como [(x, y), (x, y), …] o valores numéricos como [x, y, x, y, …].

contorno : color que se utilizará para el contorno.

relleno : color que se utilizará para el relleno.

Devuelve: un objeto de imagen.

   
  
import math
from PIL import Image, ImageDraw
from PIL import ImagePath 
  
side = 8
xy = [
    ((math.cos(th) + 1) * 90,
     (math.sin(th) + 1) * 60)
    for th in [i * (2 * math.pi) / side for i in range(side)]
    ]  
  
image = ImagePath.Path(xy).getbbox()  
size = list(map(int, map(math.ceil, image[2:])))
  
img = Image.new("RGB", size, "# f9f9f9") 
img1 = ImageDraw.Draw(img)  
img1.polygon(xy, fill ="# eeeeff", outline ="blue") 
  
img.show()

Producción:

Otro ejemplo: tomando diferentes parámetros.

   
  
import math
from PIL import Image, ImageDraw
from PIL import ImagePath 
  
side = 6
xy = [
    ((math.cos(th) + 1) * 90,
     (math.sin(th) + 1) * 60)
    for th in [i * (2 * math.pi) / side for i in range(side)]
    ]  
  
image = ImagePath.Path(xy).getbbox()  
size = list(map(int, map(math.ceil, image[2:])))
  
img = Image.new("RGB", size, "# f9f9f9") 
img1 = ImageDraw.Draw(img)  
img1.polygon(xy, fill ="# eeeeff", outline ="blue") 
  
img.show()

Producción:

Publicación traducida automáticamente

Artículo escrito por Sunitamamgai y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *