CodeGym /Curso de Java /Python SELF ES /Dibujando: textos, líneas y marcas de agua

Dibujando: textos, líneas y marcas de agua

Python SELF ES
Nivel 46 , Lección 0
Disponible

1. Agregar texto a una imagen

Para agregar texto a una imagen con Pillow, se utiliza el módulo ImageDraw, que ofrece el método text() para mostrar texto en coordenadas específicas.

Agregar texto de forma simple

                
from PIL import ImageDraw, ImageFont

# Creamos un objeto para dibujar
draw = ImageDraw.Draw(image)

# Agregar texto a la imagen
text = "Ejemplo de texto"
draw.text((50, 50), text, fill="white")

# Guardar la imagen con texto
image.save("text_example.jpg")
                
            

En este ejemplo, el texto "Ejemplo de texto" se agrega en las coordenadas (50, 50). El parámetro fill define el color del texto, el cual puede especificarse como una cadena ("white", "black") o en formato RGB ((255, 255, 255)).

Configurar la fuente del texto

Por defecto, Pillow utiliza una fuente estándar. Para elegir otra fuente y definir su tamaño, usa ImageFont.truetype(). Asegúrate de que el archivo de fuente esté disponible en tu sistema.

                
# Cargar una fuente
font = ImageFont.truetype("arial.ttf", 36)

# Agregar texto con una fuente personalizada
draw.text((50, 100), text, font=font, fill="yellow")
image.save("text_custom_font_example.jpg")
                
            

Aquí utilizamos la fuente arial.ttf con un tamaño de 36 píxeles. Si no tienes la fuente necesaria, puedes descargarla y especificar su ruta.

2. Agregar una marca de agua

Una marca de agua es texto o una imagen semitransparente que se superpone a una fotografía para protegerla contra la copia. También se puede usar para agregar logotipos o información de autoría. En Pillow, se puede crear una marca de agua simple en texto.

Marca de agua en texto

                
# Creamos un objeto para dibujar
draw = ImageDraw.Draw(image)

# Texto y fuente para la marca de agua
watermark_text = "© 2023 My Company"
font = ImageFont.truetype("arial.ttf", 24)

# Definir las coordenadas para la marca de agua
width, height = image.size
text_width, text_height = draw.textsize(watermark_text, font=font)
x = width - text_width - 10
y = height - text_height - 10

# Agregar la marca de agua en la esquina inferior derecha
draw.text((x, y), watermark_text, font=font, fill=(255, 255, 255, 128))
image.save("watermarked_example.jpg")
                
            

En este ejemplo, la marca de agua en texto se agrega en la esquina inferior derecha de la imagen. Calculamos x e y para que la marca de agua esté ligeramente desplazada del borde.

3. Agregar elementos gráficos

Además de texto, Pillow permite dibujar elementos gráficos básicos como líneas, rectángulos, círculos y elipses. Esto resulta útil para crear bordes, resaltar áreas y agregar figuras geométricas.

Dibujar líneas

Para dibujar líneas, usa el método line(), que toma las coordenadas de inicio y fin de la línea.

                
# Dibujamos una línea desde la esquina superior izquierda hasta la esquina inferior derecha
draw.line((0, 0, width, height), fill="red", width=5)
image.save("line_example.jpg")
                
            

Este código dibuja una línea roja que recorre diagonalmente desde la esquina superior izquierda hasta la esquina inferior derecha de la imagen.

Dibujar rectángulos

Un rectángulo se dibuja con el método rectangle(), que toma las coordenadas de las esquinas superior izquierda e inferior derecha.

                
# Dibujamos un rectángulo
draw.rectangle((50, 50, 200, 200), outline="blue", width=3)
image.save("rectangle_example.jpg")
                
            

Aquí se crea un rectángulo con contorno azul y un grosor de línea de 3 píxeles. También puedes usar el parámetro fill para rellenar el rectángulo con color.

Dibujar círculos y elipses

El método ellipse() permite dibujar círculos y elipses. Para dibujar un círculo, indica el mismo tamaño para el ancho y la altura.

                
# Dibujamos un círculo
draw.ellipse((150, 150, 250, 250), outline="green", width=4)
image.save("circle_example.jpg")
                
            

En este ejemplo, se crea un círculo con centro en el punto (200, 200). Si defines diferentes tamaños para el ancho y la altura, obtendrás una elipse.

Dibujar polígonos

Para dibujar polígonos, utiliza el método polygon(), que toma las coordenadas de los vértices de la figura.

                
# Dibujamos un triángulo
draw.polygon([(100, 100), (150, 50), (200, 100)], outline="purple", fill="orange")
image.save("polygon_example.jpg")
                
            

Este código dibuja un triángulo con relleno naranja y contorno púrpura. Puedes crear una figura de cualquier forma con las coordenadas de sus vértices.

4. Ejemplos

Ejemplo de composición con texto y gráficos

Unimos todo lo anterior y creamos una imagen con texto, marca de agua y elementos gráficos.

                
from PIL import Image, ImageDraw, ImageFont

# Cargar la imagen
image = Image.open("example.jpg")
draw = ImageDraw.Draw(image)

# Agregar texto
font = ImageFont.truetype("arial.ttf", 36)
draw.text((50, 50), "Texto de ejemplo", font=font, fill="yellow")

# Agregar marca de agua en la esquina inferior derecha
watermark_text = "© 2023 My Company"
font_watermark = ImageFont.truetype("arial.ttf", 24)
width, height = image.size
text_width, text_height = draw.textsize(watermark_text, font=font_watermark)
x = width - text_width - 10
y = height - text_height - 10
draw.text((x, y), watermark_text, font=font_watermark, fill=(255, 255, 255, 128))

# Dibujar línea, rectángulo y círculo
draw.line((0, 0, width, height), fill="red", width=5)
draw.rectangle((50, 50, 200, 200), outline="blue", width=3)
draw.ellipse((150, 150, 250, 250), outline="green", width=4)

# Guardar el resultado
image.save("final_composition_example.jpg")
                
            

Este ejemplo crea una imagen con texto, marca de agua y varios elementos gráficos (línea, rectángulo y círculo). Composiciones como esta pueden usarse para presentaciones, blogs y creación de imágenes con diseño profesional.

Aplicaciones prácticas

  • Marcar y proteger imágenes: Las marcas de agua ayudan a proteger imágenes contra uso no autorizado, mientras que el texto permite agregar información de autoría o sobre la empresa.
  • Preparar imágenes para redes sociales: Agregar texto y gráficos permite preparar imágenes para publicaciones con información adicional.
  • Infografía y visualización de datos: Usar elementos gráficos como líneas y figuras permite crear gráficos y diagramas simples, haciendo a Pillow útil para infografías.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION