
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 script
sería más precisa. De cualquier manera, nos proponemos crear uno script
que convierta imágenes de un formato de archivo (tipo de imagen) a otro, en solo 6 líneas de código Python.
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 PIL
no recibió ninguna actualización para la última versión de Python, por lo que algunas buenas almas han creado una bifurcación amigable llamada Pillow
que 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. PIL
para procesamiento de imágenes y glob
para 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 .py
archivo 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 Format
y Folder Path
se 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