ImageMagick Batch Convertir

ImageMagick Batch Convertir
Por lo general, podemos escribir una línea de código para transformar una imagen, ya sea para recortar, cambiar el tamaño, etc. Con imagemagick, todo es bastante simple. Pero supongamos por una instancia que teníamos 1000 fotos que necesitaban ser modificadas, ¿qué hacemos?? Escriba el comando 1000 veces? Eso sería una tontería, correcta? Esto es cuando usamos las conversiones por lotes. Lo que esto significa es que podemos ser inteligentes sobre la transformación 1000 y escribir algunas líneas de código como máximo para garantizar que el proceso se realice sin problemas y fácilmente. Básicamente, no tenemos que escribir los comandos 1000. En este tutorial, aprenderemos cómo convertir las imágenes en ImageMagick.

Instalación de ImageMagick

Necesitaremos la imagen de ImageMagick para este proceso. Primero, instalarlo con la siguiente sintaxis:

sudo apt-get install imageMagick

Hacer mogrificar

Supongamos que tenemos 1000 fotos que tienen el ".extensión de PNG ”. Supongamos además que queremos transformarlos a todos a un ".archivo jpg ".

Ahora que hemos terminado de suponer, podemos comenzar a escribir el código.

Mogrify -Format JPG *.png

Aquí, le estamos diciendo a ImageMagick que hay muchos ".PNG "imágenes para usar cada una con un".extensión de PNG ”. Luego le decimos la imagen de ImageMagick con el interruptor de formato para transformar la imagen en una imagen JPG. Aquí, el interruptor de formato evita que las imágenes se sobrescriban. Por lo general, la distinción entre Mogrify y Convert es que Mogrify sobrescribe los archivos originales. Pero este no es el caso cuando usamos el interruptor de formato (una excepción a la regla).

La gran parte de este pequeño código es que se convertirá en tantas imágenes como desee. Y es una línea de una sola! Sin embargo, en este caso, guardamos todos los archivos nuevos dentro de la misma carpeta que los archivos antiguos.

Ahora, supongamos que quiero guardarlos en un directorio completamente diferente. Tenemos un montón de *.JPG y los guardamos en una nueva carpeta llamada NewFolder. Supongamos además que los archivos originales están en la carpeta de descargas.

(La idea aquí es que todos los archivos originales están en la carpeta de descargas, y creamos una carpeta llamada NewFolder para descargar las imágenes transformadas.)

Descargas de CD
Mkdir Newfolder
MoGrify -Format PNG -Quality 100 -Path ~/Downloads/Newfolder *.JPG

Entonces, ¿qué pasa aquí?? Aplicamos el comando mogrify y agregamos un nuevo interruptor llamado ruta. El interruptor de ruta asegura que las nuevas imágenes creadas se descargaran en la carpeta especificada (Newfolder).

Ahora, supongamos que tenemos una combinación de imágenes JPG e imágenes PNG y queremos transformarlas en JPEG.

Mogrify -Format JPEG *

En este caso, en lugar de especificar qué imágenes queremos convertir, solo colocamos una estrella. La estrella significa convertir todo.

Si hay carpetas allí, se bloqueará, así que use el interruptor de ruta también.

Convertir

Ahora, escribamos algo un poco diferente usando el comando convertir en lugar del comando mogrify (el comando mogrify sobrescribe los archivos originales).

convertir *.PNG -RESIZE 1234X1234 RESEATIVO-%D.png

¿Qué notaron aquí?? Hicimos la conversión por lotes usando el comando convertir. Para cambiar el nombre del archivo, usamos el término "dimensionado-%D.PNG ". ¿Qué es este signo "%D" en el nombre?? El resto del nombre tiene sentido, correcto? Y el "%d" significa numerarlos con 0, 1, 2, etc.

Otro ejemplo rápido:

convertir *.PNG -RESIZE 1234X1234 RESEATE-%03D.png

¿Qué significa el "%03D"?? Bueno, mira la salida. Esta vez lo renombra con 3 dígitos. Ahora, en lugar de ver el redimensionamiento-0.PNG, vemos el redimensionado-000.png.

Bucles

También puedes escribir los bucles.

para f en *.JPG; Convertir "$ F" -QUITAL 85 "$ F".png; hecho

En este caso, todavía estamos usando una línea de unión, pero es un poco más complejo. En este caso, decimos que para cada imagen llamada F, convertimos la imagen y la cambiamos a "$ F.PNG ". Como habrás notado, si la imagen se llama "Image1.JPG ", lo cambia a" Image1.JPG.PNG ". Este comando es un poco defectuoso, así que veamos las otras formas de cambiar el nombre de la imagen.

Anteriormente, utilizamos el comando mogrify. No sobrescribió las imágenes debido al interruptor de formato. Pero si el interruptor de formato no hubiera estado allí, al cambiar el tamaño, por ejemplo, habría sobrescrito el archivo. Entonces, ¿qué pasa si queremos usar el comando convertir??

para el archivo en *.png; Convertir $ Archivo -RESIZE 1275X1222 DISEGADO- $ Archivo; hecho

Intentemos entender este comando.

La primera parte del comando es la siguiente:

para el archivo en *.png;

El *.PNG se refiere a todos los archivos PNG. Lo que esto significa es "para cualquier archivo único en la pila de archivos".

El comando central es el siguiente:

Convertir $ Archivo -RESIZED 1275X1222 DISEZ- $ Archivo

Esta parte simplemente toma el archivo $ (un archivo) y lo cambia de tamaño usando el interruptor de cambio de tamaño y luego elimina un archivo llamado archivo redimensionado-$.

Luego terminamos con Hecho. Esta parte es lo suficientemente obvia.

Bastante fácil, correcto?

Conclusión

La conversión por lotes es un proceso muy útil. Nos impide tener que volver a escribir un comando un millón de veces. En ImageMagick, la forma más sencilla de transformar un millón de imágenes es mediante el comando mogrify. Sin embargo, si no se usa junto con el interruptor de formato, escribe sobre la imagen original. Por ejemplo, si usa el comando mogrify para convertir por lotes un montón de imágenes para cambiar el tamaño, sobrescribe las imágenes originales. A veces, esto puede no ser lo que desea, y en tales casos, puede recurrir a escribir un pequeño guión. El script en sí es un revestimiento y puede usar el comando convertir si lo desea, así que esa es la buena parte. Pero es un poco más complejo que las conversiones de lotes más simples realizadas utilizando el comando mogrify. De cualquier manera, el punto es que ya no tienes que transformar una imagen a la vez. Puedes seguir adelante con las conversiones por lotes que pueden convertir miles y miles de imágenes en un momento.