Cómo construir un convertidor de tipo de imagen en seis líneas de Python

Una de las ventajas de ser programador es su capacidad para crear herramientas de utilidad para mejorar su vida. A diferencia de un no programador, es probable que no pase horas buscando en varias páginas de resultados de búsqueda de Google para encontrar una herramienta que, en primer lugar, se suponía que mejoraría su productividad (la ironía gana ). Es probable que esto te haga sentir más poderoso al conocer un lenguaje de programación, especialmente si ese lenguaje de programación es tan versátil y asombroso como Python.

Uno de los puntos en El Zen de Python dice:

Mejor es simple que complejo.

Con esta filosofía en su lugar, gran parte del desarrollo de herramientas de nicho usando Python se puede hacer de manera tan sucinta que me hace preguntarme si vale la pena llamarlo una herramienta. A veces, la palabra scriptsería más precisa. De cualquier manera, nos proponemos crear uno scriptque convierta imágenes de un formato de archivo (tipo de imagen) a otro, en solo 6 líneas de código Python.

Descargo de responsabilidad: el número de líneas (6) excluye las líneas vacías y los comentarios

En este tutorial, vamos a construir un convertidor de tipo de imagen que convierte una imagen PNG en una imagen JPG. Antes de que sus células de materia gris se apresuren a juzgar si estoy loco por construir esta herramienta, permítanme decirles que esto no es solo para una imagen, sino para todas las imágenes dentro de una carpeta. Eso definitivamente requeriría más esfuerzo manual para hacerlo sin codificar (sé que puedes oler bash).

Paquete Python

Usaremos el paquete Python PIL(que significa Biblioteca de imágenes de Python) para este propósito. El original PILno recibió ninguna actualización para la última versión de Python, por lo que algunas buenas almas han creado una bifurcación amigable llamada Pillowque admite incluso> Python 3.0.

Instálelo usando pip3 install Pillow.

Guión inicial

Hay dos secciones principales en este código. La primera sección es donde importamos los paquetes requeridos, y la segunda sección es donde ocurre la operación real. La operación real se puede desglosar de la siguiente manera:

  • Itere todos los archivos con la extensión dada, en nuestro caso .png, y repita todo lo siguiente:
  • Abra el archivo de imagen (como un archivo de imagen)
  • Convierta el archivo de imagen a un formato diferente ( RGB)
  • Finalmente guarde el archivo - con la nueva extensión .jpg

Líneas 1 y 2:

from PIL import Image # Python Image Library - Image Processing
import glob

Esta sección solo importa los paquetes necesarios. PILpara procesamiento de imágenes y globpara iterar a través de archivos de la carpeta dada en el sistema operativo.

Líneas 3 a 6:

# based on SO Answer: //stackoverflow.com/a/43258974/5086335
for file in glob.glob("*.png"):
 im = Image.open(file)
 rgb_im = im.convert('RGB')
 rgb_im.save(file.replace("png", "jpg"), quality=95)

ALETA

¡Ese es el final de nuestra herramienta! Puede guardar estas 6 líneas como un .pyarchivo y luego invocarlas en su computadora donde tiene imágenes para convertir.

Mayor desarrollo

Si planea mejorar aún más este script, puede convertir este script completo en una herramienta de interfaz de línea de comandos; luego, todos estos detalles como File Formaty Folder Pathse pueden dar como argumentos, extendiendo así su poder aún más.

Referencias

  • El código completo utilizado aquí está disponible en mi github
  • Zen de Python
  • Almohada