Python Pillow – Trabajar con imágenes

En este artículo veremos cómo trabajar con imágenes usando Pillow en Python. Discutiremos operaciones básicas como crear, guardar y rotar imágenes. Entonces, comencemos a discutir en detalle, pero primero, veamos cómo instalar la Pillow.

Instalación

Para instalar este paquete, escriba el siguiente comando en la terminal.

pip install pillow

Creando nueva imagen

Puede crear una nueva imagen utilizando el método PIL.Image.new() . Este método crea una nueva imagen con el modo y tamaño dados. El tamaño se proporciona como una tupla (ancho, alto), en píxeles

Sintaxis: PIL.Image.new(modo, tamaño, color)

Código:

Python3

import PIL
image = PIL.Image.new(mode = "RGB",
                      size = (200, 200),
                      color = (255, 153, 255))
image.show()

Producción:

Imagen de apertura

Puede abrir cualquier imagen usando el método PIL.Image.open() .

Sintaxis: PIL.Imagen.open(fp, modo=’r’)

Código:

Python3

from PIL import Image
 
image = Image.open('nature.jpg')
image.show()

Producción:

Obtener información sobre la imagen

  • Obtener el formato de la imagen: el método obj.format devuelve el formato del archivo de imagen.

Python3

from PIL import Image
 
img = Image.open("test.png")
 
print(img.format)

Producción:

PNG
  • Obtener el tamaño de la imagen: el atributo obj.size proporciona el tamaño de la imagen. Devuelve una tupla que contiene ancho y alto.

Python3

from PIL import Image
 
img = Image.open("test.png")
 
print(img.size)

Producción:

(180, 263)

Cambiar el nombre y guardar la imagen

Podemos cambiar el nombre, el formato de la imagen y también podemos renombrarla usando el método image.save() .

Sintaxis: Image.save(fp, formato=Ninguno, **parámetros)

Código:

Python3

from PIL import Image
image = Image.open('nature.jpg')
image.show()
 
image.save('nature1.bmp')
image1 = Image.open('nature1.bmp')
image1.show()

Producción:

Antes del cambio

Después del cambio

Recortar la imagen

PIL es la biblioteca de imágenes de Python que proporciona al intérprete de Python capacidades de edición de imágenes. El método PIL.Image.crop() se utiliza para recortar una parte rectangular de cualquier imagen.

Sintaxis: PIL.Imagen.crop(caja = Ninguno)

Código:

Python3

from PIL import Image
 
# Open image
im = Image.open("nature.jpg")
 
# Show actual Image
im.show()
 
# Show cropped Image
im = im.crop((0,0,50,50)
im.show()

Producción:

Antes de la rotación

Imagen recortada

Rotando la imagen

El método PIL.Image.Image.rotate() se usa para rotar una imagen dada el número dado de grados en sentido contrario a las agujas del reloj alrededor de su centro.

Sintaxis: new_object = PIL.Image.Image.rotate(image_object, angle, resample=0, expand=0) OR new_object = image_object.rotate(angle, resample=0, expand=0)

Código:

Python3

from PIL import Image
 
# Open image
im = Image.open("nature.jpg")
 
# Show actual Image
im.show()
 
# Show rotated Image
im = im.rotate(45)
im.show()

Producción:

Antes de la rotación

Después de la rotación

Filtrando la imagen

La versión actual de la biblioteca de Pillow proporciona el conjunto de filtros de mejora de imagen predefinidos que se menciona a continuación.

  • DIFUMINAR
  • CONTORNO
  • DETALLE
  • EDGE_MEJOR
  • EDGE_MEJORA_MÁS
  • REALZAR
  • ENCONTRAR BORDES
  • AFILAR
  • SUAVE
  • SUAVE_MÁS

Imagen.filtro()

Sintaxis: filtro (núcleo) 

Toma un núcleo (predefinido o personalizado) y cada píxel de la imagen a través de él (Convolución del núcleo). 

Código:

Python3

# Import required image modules
from PIL import Image, ImageFilter
 
# Import all the enhancement filter from pillow
from PIL.ImageFilter import (
   BLUR, CONTOUR, DETAIL, EDGE_ENHANCE, EDGE_ENHANCE_MORE,
   EMBOSS, FIND_EDGES, SMOOTH, SMOOTH_MORE, SHARPEN
)
 
# Create image object
img = Image.open('nature.jpg')
 
# Applying the sharpen filter
# You can change the value in filter function
# to see the deifferences
img1 = img.filter(SHARPEN)
img1.show()

Producción:

Antes del filtro

Después del filtro SHARPEN

Crear una marca de agua en la imagen

Aquí, puede crear una marca de agua usando ImageDraw.Draw.text() Este método dibuja la string en la posición dada.

Sintaxis: ImageDraw.Draw.text(xy, texto, relleno=Ninguno, fuente=Ninguno, ancla=Ninguno, espaciado=0, alineación=”izquierda”)

Código:

Python3

# Import required Image library
from PIL import Image, ImageDraw, ImageFont
 
# Create an Image Object from an Image
im = Image.open('nature.jpg')
width, height = im.size
 
draw = ImageDraw.Draw(im)
text = "lovely nature"
 
font = ImageFont.truetype('arial.ttf', 36)
textwidth, textheight = draw.textsize(text, font)
 
# calculate the x,y coordinates of
# the text
x = 100
y = 50
 
# draw watermark in the bottom right
# corner
draw.text((x, y), text, font=font)
im.show()
 
# Save watermarked image
im.save('watermark.jpg')

Producción:

Antes de la marca de agua/texto

Después de la marca de agua/texto

Publicación traducida automáticamente

Artículo escrito por priyampatel9911 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 *