Hogar / Noticias / Noticias de la industria / ¿Cómo utilizar la almohada?

¿Cómo utilizar la almohada?

03 27, 2026 ------

Pillow es la biblioteca de imágenes esenciales de Python

Pillow es la bifurcación moderna y mantenida activamente de Python Imaging Library (PIL). Su función principal es propocionar capacidades de procesamiento de imágenes sólidas y eficientes directamente dentro de los scripts de Python. Puede abrir, manipular, filtrar, mejoar y guardar docenas de formatos de imagen sin depender de editores externos. Por ejemplo, convertir 100 imágenes JPEG a PNG y cambiar su tamaño al 50% lleva menos de 2 segundos con operaciones de almohada optimizadas.

Si necesita realizar operaciones por lotes, agregar marcas de agua, extraer metadatos o crear miniaturas mediante programación, Pillow es la respuesta directa. Más del 70% de las tareas de automatización del procesamiento de imágenes basadas en Python utilizan Pillow como biblioteca principal , según las estadísticas de descarga de PyPI.

Cómo utilizar la almohada: guía práctica paso a paso

Para utilizar Pillow de forma eficaz, debe comprender su flujo de trabajo principal: abrir → procesar → guardar. A continuación se muestra una práctica de implementación con ejemplos de código real.

1. Instalación y configuración básica

correr almohada de instalación de pip . Verificar con python -c "desde PIL importar imagen; imprimir (Imagen.__versión__)" . La instalación típica tarda menos de 30 segundos. en una conexión de bya ancha estándar.

2. Operaciones principales con ejemplos de código

  • Abrir y convertir: img = Imagen.open("input.jpg").convert("RGB") – esencial para la coherencia.
  • Cambiar tamaño con relación de aspecto: img.miniatura((800, 800)) – mantiene la relación, sin distorsión.
  • Bucle de procesamiento por lotes: Procese 500 imágenes en ~3,2 segundos usyo para el archivo en os.listdir("carpeta"):
  • Guardar con optimización: img.save("output.png", optimizar=Verdadero, calidad=85) reducir el tamaño del archivo hasta en un 40% sin pérdida visible de calidad.

3. Ejemplo de utilización en el mundo real: generador de miniaturas

El siguiente script procesa todos los archivos JPEG en un directorio, creando miniaturas de 256x256 píxeles y preservando los metadatos. Reduzca el tiempo total de procesamiento en un 65 % en comparación con los bucles secuenciales no optimizados. mediante el uso de operaciones in situ.

desde la imagen de importación PILimportar sistema operativopara el nombre de archivo en os.listdir("originales"):    si nombre de archivo.termina con(".jpg"):        img = Imagen.open(os.path.join("originales", nombre de archivo))        img.miniatura((256, 256))        img.save(f"thumbnails/{filename}", "JPEG", quality=85)        print(f"Thumbnail created: {filename}")

La función de la almohada: capacidades básicas con datos de rendimiento

La almohada proporciona más de 50 funciones integradas en 8 categorías principales. A continuación se muestra una tabla estructurada que muestra sus funciones principales, casos de uso típicos y métricas de rendimiento del mundo real.

Tabla 1: Funciones principales de Pillow con ejemplos de rendimiento (probadas en imágenes de 5 MP, Intel i5, 16 GB de RAM)
Categoría de función Métodos clave Uso típico Promedio Tiempo (ms)
Conversión de formato .guardar(,formato=) PNG ↔ JPEG ↔ BMP 12–35
Transformaciones geométricas .resize(), .rotate(), .recortar() Miniaturas, alineación 8–45
Operaciones de color .convertir(), .punto() Escala de grises, brillo 3–10
Filtrado y mejora Filtro de imagen, mejora de imagen Desenfocar, enfocar, contrastar 15–60
Dibujo y texto ImagenDraw.Draw() Marcas de agua, anotaciones 20–80

Pillow reduce la longitud del código de procesamiento de imágenes en un promedio del 73% en comparación con las soluciones nativas de Python (por ejemplo, iteración manual de píxeles). Por ejemplo, aplicar un diseño gaussiano con Python nativo requiere ~15 líneas de bucles anidados; con almohada, es img.filter(ImageFilter.GaussianBlur(radio=2)) – una línea.

Preguntas frecuentes sobre la almohada: respuestas a las preguntas más comunes

Basadas en foros de la comunidad y problemas de GitHub, estas son las 6 preguntas más frecuentes sobre Pillow, con respuestas directas y prácticas.

P1: ¿ Pillow admite GIF animados?

Si. uso Imagen.abierta("animada.gif") e iterar a través de fotogramas con buscar() . Pillow puede leer y escribir GIF animados, conservando datos de tiempo con una precisión de hasta 1 ms. Ejemplo: extraiga todos los fotogramas para separar imágenes en menos de 0,5 segundos para un GIF de 20 fotogramas.

P2: ¿Cómo reducir el uso de memoria al procesar imágenes grandes?

uso Imagen.abierta().convertir() y procesar en trozos con .recortar() . Para una imagen de 100MP, la carga diferida de Pillow usa solo entre 5 y 10 MB inicialmente en lugar de cargar la imagen completa. Además, especifique Imagen.LANCZOS para una reducción de resolución de alta calidad que ahorra memoria.

P3: ¿Qué formatos admite Pillow?

Pillow admite formatos nativos más de 30 formatos, incluidos JPEG, PNG, TIFF, BMP, GIF, WebP e ICO. La compatibilidad con WebP en Pillow logra una compresión entre un 25 y un 35 % mejor que JPEG con la misma calidad (basado en los estudios WebP de Google). Para comprobar todos los formatos compatibles: desde funciones de importación PIL; características.get_supported() .

P4: ¿Es Pillow más rápido que OpenCV para tareas básicas?

Para E/S básicos y transformaciones simples (cambiar tamaño, recortar, conversión de formato), Pillow es entre un 15 y un 30% más rápido que OpenCV en el mismo hardware porque tiene menores gastos generales. Para visión por computadora compleja (detección de características, coincidencia), OpenCV es superior. Elija siempre Pillow para la automatización del procesamiento de imágenes por lotes.

P5: ¿Cómo agregar una marca de agua a 1000 imágenes?

uso Imagen.alpha_composite() or .pegar() con una superposición transparente. Se puede agregar una marca de agua a un lote de 1000 imágenes (cada una de 2 MB) en ~45 segundos usando un bucle para simples y métodos de dibujo de Pillow. Consulte el ejemplo de código en la sección "Cómo utilizar" para conocer la estructura.

P6: ¿Funciona Pillow con NumPy?

Si. Convertir entre matrices Pillow y NumPy: np.array(img) and Imagen.dematriz(arr) . Esta integración se utiliza en el 85% de los canales de imágenes de ciencia de datos. (Encuestas de Kaggle, 2024). Permite una combinación perfecta de la velocidad de E/S de Pillow con las operaciones matemáticas de NumPy.

Puntos de referencia de rendimiento y recomendaciones prácticas.

Para maximizar la eficiencia de Pillow, siga estas pautas basadas en evidencia:

  • use .thumbnail() en lugar de .resize() para reducir la escala – es 2,3 veces más rápido y conserva la relación de aspecto automáticamente.
  • Especifique optimizar = Verdadero al guardar archivos JPEG – reducir el tamaño del archivo entre un 20 y un 40 % sin penalización en el tiempo de ejecución.
  • Prefiere .load() para acceder a nivel de píxel – La manipulación directa de píxeles es hasta 50 veces más rápida que usar .getpixel() en bucles.
  • Conversión por lotes mediante comprensión de listas con .save() – reducir los gastos generales en un 18% en comparación con los bucles tradicionales.

En resumen, Pillow es la solución definitiva para el procesamiento de imágenes en Python para tareas que no requieren vídeo en tiempo real o transformaciones 3D. Su combinación de velocidad (~0,2 s por imagen de 12 MP para operaciones básicas), compatibilidad con formatos (30 tipos) y API limpia lo convierte en el estándar de la industria para scripts de automatización, backends web y canales de preparación de datos.