Módulos y métodos comunes de Pillow

Pillow proporciona funciones ricas, que incluyen apertura de imágenes, edición, guardado, conversión de formatos, etc.

Este artículo presentará los módulos y métodos comunes de Pillow, y proporcionará ejemplos de código simples.


Módulos comunes

Nombre del móduloCategoría de funciónFunción principalMétodos/atributos comunesEscenarios de aplicación típicos
ImageMódulo principalOperaciones básicas de imagenopen(), save(), resize(), crop(), rotate(), convert()Carga/guardado de imágenes/ajuste de tamaño/conversión de formato
ImageDrawMódulo de dibujoDibujo de gráficos vectorialesDraw(), line(), rectangle(), text(), ellipse()Añadir marcas de agua/dibujar formas/anotar imágenes
ImageFontSoporte de fuentesRenderizado de textotruetype(), load_default(), getsize()Estilos de texto personalizados/cálculo de áreas de texto
ImageFilterEfectos de imagenProcesamiento de filtrosBLUR, SHARPEN, EMBOSS, GaussianBlur()Desenfoque de imágenes/nitidez/efectos artísticos
ImageEnhanceOptimización de imágenesMejora de calidadBrightness(), Contrast(), Color(), Sharpness()Ajuste de brillo/contraste/saturación
ImageOpsOperaciones avanzadasProcesamiento automatizadograyscale(), flip(), mirror(), invert()Inversión de imagen/espejo/forzar escala de grises
ImageChopsOperaciones de canalOperaciones matemáticasadd(), subtract(), multiply(), difference()Composición de imágenes/detección de diferencias/procesamiento de máscaras
ImageColorSistema de colorConversión de colorgetrgb(), getcolor(), colormapConversión de color HEX/RGB/HSL
ImageGrabCaptura de pantallaFunción de capturagrab(), grabclipboard()Captura de pantalla/obtención de imágenes del portapapeles
ImageStatAnálisis de datosEstadísticas de píxelesStat(), extrema(), mean(), rms()Análisis de color de imagen/detección de brillo
ImagePalettePaleta de coloresGestión de color indexadonew(), getcolor(), tobytes()Procesamiento de imágenes de 8 bits/optimización de GIF
ImagePathProcesamiento de rutasRutas vectorialesPath(), getbbox(), compact()Dibujo de formas complejas (requiere combinación con ImageDraw)
ImageSequenceImágenes dinámicasProcesamiento de fotogramasIterator(), all_frames()Descomposición de animaciones GIF/procesamiento de TIFF de múltiples fotogramas
ImageMorphMorfologíaDeformación de imágenesMorphOp(), apply(), get_on_pixels()Dilatación de patrones/erosión/análisis estructural
ImageShowVista previa de imágenesVisualización rápidashow(), register_viewer()Visualización rápida de imágenes durante la depuración
ImageTkIntegración GUISoporte TkinterPhotoImage(), BitmapImage()Mostrar imágenes en la interfaz Tkinter
ImageQtIntegración GUISoporte QtImageQt(), toqimage()Visualización de imágenes en PyQt/PySide
ExifTagsMetadatosLectura EXIFTAGS, GPSTAGSLeer parámetros de cámara/información GPS
PSDrawSalida de impresiónPostScriptPSDraw(), begin_document()Generar archivos vectoriales para impresión
TiffTagsMetadatosEtiquetas TIFFTIFFTAGSProcesar metadatos de formato TIFF

Proceso de trabajo de los módulos

Combinaciones de procesamiento avanzado:

  • Creación de efectos: ImageFilter + ImageEnhance
  • Análisis de imágenes: ImageStat + ImageChops
  • Desarrollo GUI: ImageTk/ImageQt + ImageDraw

Soporte de campos profesionales:

  • Imágenes científicas: TIFFTags + ImageSequence
  • Impresión y publicación: PSDraw + ImageColor
  • Visión por computadora: ImageMorph + ImageOps

Métodos comunes

PIL.ImageMétodos comunes del módulo

Método Descripción Ejemplo
Image.open() Abrir archivo de imagen img = Image.open("example.jpg")
Image.save() Guardar archivo de imagen img.save("output.png")
Image.show() Mostrar imagen img.show()
Image.resize() Ajustar tamaño de imagen new_img = img.resize((200, 200))
Image.rotate() Rotar imagen rotated_img = img.rotate(45)
Image.crop() Recortar imagen cropped_img = img.crop((50, 50, 200, 200))

Código de ejemplo:

Ejemplo

from PIL import Image

# Abrir imagen
img = Image.open("example.jpg")

# Ajustar tamaño y guardar
resized_img = img.resize((300, 300))
resized_img.save("resized_example.jpg")

# Rotar 90 grados y mostrar
rotated_img = img.rotate(90)
rotated_img.show()

PIL.ImageDrawMétodos comunes del módulo

Método Descripción Ejemplo
ImageDraw.Draw() Crear objeto de dibujo draw = ImageDraw.Draw(img)
draw.line() Dibujar líneas draw.line([(0, 0), (100, 100)], fill="red", width=2)
draw.rectangle() Dibujar rectángulos draw.rectangle([(50, 50), (150, 150)], outline="blue", width=3)
draw.text() Dibujar texto draw.text((10, 10), "Hello", fill="black")

Código de ejemplo:

Ejemplo

from PIL import Image, ImageDraw

# Crear una imagen en blanco
img = Image.new("RGB", (300, 300), "white")
draw = ImageDraw.Draw(img)

# Dibujar una línea roja
draw.line([(0, 0), (300, 300)], fill="red", width=2)

# Dibujar un rectángulo azul
draw.rectangle([(50, 50), (250, 250)], outline="blue", width=3)

# Añadir texto
draw.text((100, 100), "Hello Pillow!", fill="black")

# Guardar imagen
img.save("draw_example.png")
img.show()

PIL.ImageFilterMétodos comunes del módulo

Método Descripción Ejemplo
ImageFilter.BLUR Filtro de desenfoque img.filter(ImageFilter.BLUR)
ImageFilter.CONTOUR Filtro de contorno img.filter(ImageFilter.CONTOUR)
ImageFilter.SHARPEN Filtro de nitidez img.filter(ImageFilter.SHARPEN)

Código de ejemplo:

Ejemplo

from PIL import Image, ImageFilter

# Abrir imagen
img = Image.open("example.jpg")

# Aplicar filtro de desenfoque
blurred_img = img.filter(ImageFilter.BLUR)
blurred_img.save("blurred_example.jpg")

# Aplicar filtro de nitidez
sharpened_img = img.filter(ImageFilter.SHARPEN)
sharpened_img.show()
Otras extensiones