¿Cómo dibujar formas en una imagen con Pillow?
Oct 28, 2025
Dejar un mensaje
¡Hola! Como proveedor de almohadas, no sólo me dedico a vender almohadas de primera categoría comoAlmohada de cama rellena de fibra hueca de hotel 100% poliéster suave de primera calidad,Hotel de alta calidad 100% almohada de fibra de poliéster, yAlmohada de plumón de ganso blanco de alta calidad del hotel. También tengo un poco de habilidad para el procesamiento de imágenes. Hoy, voy a compartir contigo cómo dibujar formas en una imagen usando Pillow, una biblioteca de Python súper útil.
¿Qué es la almohada?
En primer lugar, hablemos de qué es Pillow. Pillow es una bifurcación de Python Imaging Library (PIL). Es fácil de usar y proporciona una serie de funciones para abrir, manipular y guardar diferentes formatos de archivos de imagen. Si eres un aficionado que busca agregar algunos efectos interesantes a las fotos de tus vacaciones o un diseñador profesional que trabaja en un proyecto, Pillow puede ser tu mejor amigo.
Instalación de almohada
Antes de comenzar a dibujar formas, debemos instalar Pillow. Si estás usando pip (que es la forma más común de instalar paquetes de Python), simplemente abre tu símbolo del sistema o terminal y escribe:
almohada de instalación de pip
¡Eso es todo! En poco tiempo, tendrás Pillow listo para usar.
Dibujar formas básicas
Empecemos por lo básico. Dibujaremos algunas formas simples en una imagen. Primero, necesitamos importar los módulos necesarios y abrir una imagen.
desde PIL importar imagen, ImageDraw # Abrir una imagen image = Image.open('your_image.jpg') draw = ImageDraw.Draw(image)
En el código anterior, primero importamos elImagenyImagenDrawclases de la biblioteca Pillow. Luego abrimos un archivo de imagen (deberías reemplazar'tu_imagen.jpg'con la ruta real a su imagen). ElImagenDraw.Draw()La función crea un objeto que podemos usar para dibujar en la imagen.


Dibujar una línea
Dibujar una línea es muy fácil. Sólo necesita especificar los puntos inicial y final de la línea, junto con el color y el ancho.
# Dibuja una línea draw.line((100, 100, 200, 200), fill='red', width=2)
En este ejemplo, la línea comienza en el punto(100, 100)y termina en(200, 200). La línea es de color rojo y tiene un ancho de 2 píxeles.
Dibujar un rectángulo
A continuación, dibujemos un rectángulo. Debe especificar las esquinas superior izquierda e inferior derecha del rectángulo.
# Dibujar un rectángulo draw.rectangle((300, 300, 400, 400), contorno='azul', ancho=2)
Aquí, el rectángulo tiene su esquina superior izquierda en(300, 300)y su esquina inferior derecha en(400, 400). El contorno del rectángulo es azul y tiene un ancho de 2 píxeles.
Dibujar una elipse
Dibujar una elipse también es sencillo. Usted especifica el cuadro delimitador de la elipse (el rectángulo que la encerraría).
# Dibujar una elipse draw.ellipse((500, 500, 600, 600), fill='green')
En este caso, la elipse está rellena de color verde y está delimitada por el rectángulo con la esquina superior izquierda.(500, 500)y esquina inferior derecha(600, 600).
Dibujar con más control
A veces, es posible que desees tener más control sobre el aspecto de tus formas. Por ejemplo, es posible que desees dibujar una forma con un relleno degradado o un contorno discontinuo.
Relleno degradado
Para crear un relleno degradado, podemos usar un bucle para dibujar varias líneas con diferentes colores. A continuación se muestra un ejemplo de cómo crear un relleno degradado vertical para un rectángulo:
desde PIL import Image, ImageDraw image = Image.open('your_image.jpg') draw = ImageDraw.Draw(image) # Dibujar un rectángulo con relleno degradado vertical start_color = (255, 0, 0) # Rojo end_color = (0, 0, 255) # Azul x1, y1, x2, y2 = 100, 100, 200, 200 altura = y2 - y1 para y en rango(y1, y2): r = int(start_color[0] + (end_color[0] - start_color[0]) * (y - y1) / altura) g = int(start_color[1] + (end_color[1] - start_color[1]) * (y - y1) / altura) b = int(start_color[2] + (end_color[2] - start_color[2]) * (y - y1) / altura) draw.line((x1, y, x2, y), fill=(r, g, b))
En este código, primero definimos los colores inicial y final del degradado. Luego recorremos cada línea horizontal dentro del rectángulo y calculamos el color de esa línea en función de su posición.
Contorno discontinuo
Dibujar un contorno discontinuo puede agregar una apariencia única a tus formas. Esto lo podemos lograr dibujando una serie de líneas cortas con espacios entre ellas.
desde PIL import Image, ImageDraw image = Image.open('your_image.jpg') draw = ImageDraw.Draw(image) # Dibuja un rectángulo con contorno discontinuo x1, y1, x2, y2 = 300, 300, 400, 400 dash_length = 5 gap_length = 3 para x en el rango (x1, x2, dash_length + gap_length): draw.line((x, y1, x + dash_length, y1), fill='amarillo', ancho=2) draw.line((x, y2, x + dash_length, y2), fill='amarillo', ancho=2) para y en el rango(y1, y2, dash_length + gap_length): draw.line((x1, y, x1, y + dash_length), fill='amarillo', ancho=2) draw.line((x2, y, x2, y + guión_longitud), relleno='amarillo', ancho=2)
En este ejemplo, definimos la longitud de los guiones y los espacios entre ellos. Luego recorremos los lados del rectángulo y dibujamos las líneas discontinuas.
Guardar la imagen modificada
Una vez que hayamos terminado de dibujar formas en la imagen, debemos guardarla. Es tan simple como:
imagen.save('imagen_modificada.jpg')
Solo reemplaza'imagen_modificada.jpg'con el nombre que quieras darle a tu nueva imagen.
Dibujo de formas avanzado
Hemos cubierto los conceptos básicos, pero Pillow permite dibujar formas mucho más avanzadas. Por ejemplo, puedes dibujar polígonos con varios lados.
desde PIL import Image, ImageDraw image = Image.open('your_image.jpg') draw = ImageDraw.Draw(image) # Dibujar un polígono puntos = [(100, 100), (200, 150), (150, 250), (50, 200)] draw.polygon(points, fill='purple')
En este código, definimos una lista de puntos que forman los vértices del polígono. Luego usamos elpolígono()Método para dibujar el polígono y rellenarlo con color morado.
Conclusión
Dibujar formas en una imagen con Pillow es divertido y fácil. Ya sea que estés agregando líneas y rectángulos simples o creando polígonos complejos con rellenos degradados, Pillow te brinda el poder de transformar tus imágenes de maneras sorprendentes.
Si está buscando almohadas de alta calidad, no olvide consultar nuestros productos comoAlmohada de cama rellena de fibra hueca de hotel 100% poliéster suave de primera calidad,Hotel de alta calidad 100% almohada de fibra de poliéster, yAlmohada de plumón de ganso blanco de alta calidad del hotel. Siempre estamos buscando nuevos socios y clientes. Si está interesado en comprar nuestras almohadas al por mayor, no dude en comunicarse con nosotros para conversar sobre la adquisición.
Referencias
- Documentación oficial de la almohada.
- Documentación oficial de Python
