4 maneras de convertir por lotes tu PNG a JPG y viceversa


En computación, el procesamiento por lotes es la ejecución de una serie de tareas en un programa de forma no interactiva. En esta guía, le ofreceremos 4 formas sencillas de convertir por lotes varias imágenes de .PNG a .JPG y viceversa con las herramientas de línea de comandos de Linux.

Utilizaremos la herramienta de línea de comandos convertir en todos los ejemplos, sin embargo, también puede hacer uso de mogrify para lograr esto.

La sintaxis para usar convertir es:

$ convert input-option input-file output-option output-file

Y para mogrify es:

$ mogrify options input-file

rojo

A continuación se muestran las distintas formas de convertir por lotes todas las imágenes de .PNG al formato .JPG , si desea convertir .JPG a .PNG , puede modificar los comandos de acuerdo a sus necesidades.

1. Convierta PNG a JPG usando los comandos 'ls' y 'xargs'

El comando ls le permite enumerar todas sus png imágenes y xargs hace posible compilar y ejecutar un comando convertir de la entrada estándar para convertir todos .png imágenes a .jpg .

----------- Convert PNG to JPG ----------- 
$ ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"'

----------- Convert JPG to PNG ----------- 
$ ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'

Explicación sobre las opciones utilizadas en el comando anterior.

  1. -1 – flag tells ls to list one image per line.
  2. -n – specifies the maximum number of arguments, which is 1 for the case.
  3. -c – instructs bash to run the given command.
  4. ${0%.png}.jpg – sets the name of the new converted image, the % sign helps to remove the old file extension.

Utilicé el comando ls -ltr para enumerar todos los archivos por fecha y hora modificadas.

De manera similar, puede usar el comando anterior para convertir todas sus imágenes de .jpg a .png al ajustar el comando anterior.

2. Convierta PNG a JPG usando el comando GNU ‘Parallel’

GNU Parallel permite a un usuario crear y ejecutar comandos de shell desde una entrada estándar en paralelo. Asegúrese de tener instalado GNU Parallel en su sistema; de lo contrario, instálelo utilizando los comandos apropiados a continuación:

$ sudo apt-get install parallel     [On Debian/Ubuntu systems]
$ sudo yum install parallel         [On RHEL/CentOS and Fedora]

Una vez instalada la utilidad Paralelo , puede ejecutar el siguiente comando para convertir todas las imágenes de .png al formato .jpg de la entrada estándar.

----------- Convert PNG to JPG ----------- 
$ parallel convert '{}' '{.}.jpg' ::: *.png

----------- Convert JPG to PNG -----------
$ parallel convert '{}' '{.}.png' ::: *.jpg

Dónde,

  1. {} – input line which is a replacement string substituted by a complete line read from the input source.
  2. {.} – input line minus extension.
  3. ::: – specifies input source, that is the command line for the example above where *png or *jpg is the argument.

Alternativamente, también puede usar los comandos ls y paralelos juntos para convertir por lotes todas sus imágenes como se muestra:

----------- Convert PNG to JPG ----------- 
$ ls -1 *.png | parallel convert '{}' '{.}.jpg'

----------- Convert JPG to PNG -----------
$ ls -1 *.jpg | parallel convert '{}' '{.}.png'

3. Convierta PNG a JPG usando el comando ‘for loop’

Para evitar el ajetreo de escribir un script de shell, puede ejecutar un for loop desde la línea de comando de la siguiente manera:

----------- Convert PNG to JPG ----------- 
$ bash -c 'for image in *.png; do convert "$image" "${image%.png}.jpg"; echo “image $image converted to ${image%.png}.jpg ”; done'

----------- Convert JPG to PNG -----------
$ bash -c 'for image in *.jpg; do convert "$image" "${image%.jpg}.png"; echo “image $image converted to ${image%.jpg}.png ”; done'

Descripción de cada opción utilizada en el comando anterior:

  1. -c allows for execution of the for loop statement in single quotes.
  2. The image variable is a counter for number of images in the directory.
  3. For each conversion operation, the echo command informs the user that a png image has been converted to jpg format and vice-versa in the line $image converted to ${image%.png}.jpg”.
  4. “${image%.png}.jpg” creates the name of the converted image, where % removes the extension of the old image format.

4. Convierte PNG a JPG usando Shell Script

Si no desea ensuciar su línea de comando como en el ejemplo anterior, escriba un pequeño script como el siguiente:

rojo

#!/bin/bash
#convert
for image in *.png; do
        convert  "$image"  "${image%.png}.jpg"
        echo “image $image converted to ${image%.png}.jpg ”
done
exit 0 

Guárdelo como convert.sh y haga que el script sea ejecutable y luego ejecútelo desde el directorio que contiene sus imágenes.

$ chmod +x convert.sh
$ ./convert.sh

En resumen, cubrimos algunas formas importantes de convertir por lotes las imágenes .png al formato .jpg y viceversa. Si desea optimizar las imágenes, puede consultar nuestra guía que muestra cómo comprimir las imágenes png y jpg en Linux.

También puede compartir con nosotros cualquier otro método, incluidas las herramientas de línea de comandos de Linux para convertir imágenes de un formato a otro en el terminal, o hacer una pregunta a través de la sección de comentarios a continuación.