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ódulo | Categoría de función | Función principal | Métodos/atributos comunes | Escenarios de aplicación típicos |
|---|---|---|---|---|
| Image | Módulo principal | Operaciones básicas de imagen | open(), save(), resize(), crop(), rotate(), convert() | Carga/guardado de imágenes/ajuste de tamaño/conversión de formato |
| ImageDraw | Módulo de dibujo | Dibujo de gráficos vectoriales | Draw(), line(), rectangle(), text(), ellipse() | Añadir marcas de agua/dibujar formas/anotar imágenes |
| ImageFont | Soporte de fuentes | Renderizado de texto | truetype(), load_default(), getsize() | Estilos de texto personalizados/cálculo de áreas de texto |
| ImageFilter | Efectos de imagen | Procesamiento de filtros | BLUR, SHARPEN, EMBOSS, GaussianBlur() | Desenfoque de imágenes/nitidez/efectos artísticos |
| ImageEnhance | Optimización de imágenes | Mejora de calidad | Brightness(), Contrast(), Color(), Sharpness() | Ajuste de brillo/contraste/saturación |
| ImageOps | Operaciones avanzadas | Procesamiento automatizado | grayscale(), flip(), mirror(), invert() | Inversión de imagen/espejo/forzar escala de grises |
| ImageChops | Operaciones de canal | Operaciones matemáticas | add(), subtract(), multiply(), difference() | Composición de imágenes/detección de diferencias/procesamiento de máscaras |
| ImageColor | Sistema de color | Conversión de color | getrgb(), getcolor(), colormap | Conversión de color HEX/RGB/HSL |
| ImageGrab | Captura de pantalla | Función de captura | grab(), grabclipboard() | Captura de pantalla/obtención de imágenes del portapapeles |
| ImageStat | Análisis de datos | Estadísticas de píxeles | Stat(), extrema(), mean(), rms() | Análisis de color de imagen/detección de brillo |
| ImagePalette | Paleta de colores | Gestión de color indexado | new(), getcolor(), tobytes() | Procesamiento de imágenes de 8 bits/optimización de GIF |
| ImagePath | Procesamiento de rutas | Rutas vectoriales | Path(), getbbox(), compact() | Dibujo de formas complejas (requiere combinación con ImageDraw) |
| ImageSequence | Imágenes dinámicas | Procesamiento de fotogramas | Iterator(), all_frames() | Descomposición de animaciones GIF/procesamiento de TIFF de múltiples fotogramas |
| ImageMorph | Morfología | Deformación de imágenes | MorphOp(), apply(), get_on_pixels() | Dilatación de patrones/erosión/análisis estructural |
| ImageShow | Vista previa de imágenes | Visualización rápida | show(), register_viewer() | Visualización rápida de imágenes durante la depuración |
| ImageTk | Integración GUI | Soporte Tkinter | PhotoImage(), BitmapImage() | Mostrar imágenes en la interfaz Tkinter |
| ImageQt | Integración GUI | Soporte Qt | ImageQt(), toqimage() | Visualización de imágenes en PyQt/PySide |
| ExifTags | Metadatos | Lectura EXIF | TAGS, GPSTAGS | Leer parámetros de cámara/información GPS |
| PSDraw | Salida de impresión | PostScript | PSDraw(), begin_document() | Generar archivos vectoriales para impresión |
| TiffTags | Metadatos | Etiquetas TIFF | TIFFTAGS | Procesar 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()
# 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()
# 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()
# 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()