GNU/Linux >> Tutoriales Linux >  >> Linux

Conversión por lotes de PNG a JPG en Linux

Tu mejor apuesta sería usar ImageMagick.

No soy un experto en el uso real, ¡pero sé que puedes hacer prácticamente cualquier cosa relacionada con las imágenes con esto!

Un ejemplo es:

convert image.png image.jpg

que mantendrá el original y creará la imagen convertida.

En cuanto a la conversión por lotes, creo que necesita usar la herramienta Mogrify que es parte de ImageMagick.

Tenga en cuenta que esto sobrescribe las imágenes antiguas.

El comando es:

mogrify -format jpg *.png

Tengo un par de soluciones más.

La solución más simple es como la mayoría ya publicada. Un simple bash for loop.

for i in *.png ; do convert "$i" "${i%.*}.jpg" ; done

Por alguna razón, tiendo a evitar los bucles en bash, así que aquí hay un enfoque de xargs más unixy, usando bash para la manipulación de nombres.

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

El que uso. Utiliza GNU Parallel para ejecutar múltiples trabajos a la vez, lo que le brinda un impulso de rendimiento. Está instalado de forma predeterminada en muchos sistemas y casi definitivamente está en su repositorio (es un buen programa para tener a mano).

ls -1 *.png | parallel convert '{}' '{.}.jpg'

El número de trabajos predeterminado es el número de núcleos de CPU que tiene. Encontré un mejor uso de la CPU usando 3 trabajos en mi sistema dual-core.

ls -1 *.png | parallel -j 3 convert '{}' '{.}.jpg'

Y si quieres algunas estadísticas (hora estimada de llegada, trabajos completados, tiempo medio por trabajo...)

ls -1 *.png | parallel --eta convert '{}' '{.}.jpg'

También existe una sintaxis alternativa si está utilizando GNU Parallel.

parallel convert '{}' '{.}.jpg' ::: *.png

Y una sintaxis similar para algunas otras versiones (incluida Debian).

parallel convert '{}' '{.}.jpg' -- *.png

El convert El comando que se encuentra en muchas distribuciones de Linux se instala como parte de la suite ImageMagick. Aquí está el código bash para ejecutar convert en todos los archivos PNG en un directorio y evitar ese problema de doble extensión:

for img in *.png; do
    filename=${img%.*}
    convert "$filename.png" "$filename.jpg"
done

Linux
  1. Cómo optimizar y comprimir imágenes JPEG o PNG en la línea de comandos de Linux

  2. imagen de linux del portapapeles

  3. ¿Cómo convertir un PDF a JPG con línea de comando en Linux?

  4. Convierta un montón de archivos BMP a JPEG en Linux

  5. oxps a pdf o imagen - Linux

Cómo convertir por lotes archivos PDF en Linux

Convierta PNG a JPEG, JPEG a PNG usando la línea de comando en Ubuntu

Cómo convertir un archivo PDF a una imagen PNG/JPG en Linux

Cómo convertir por lotes imágenes PNG a formato JPG en Linux

Cómo convertir una página web a PDF en Linux

Cómo convertir PDF a imágenes PNG y viceversa en Linux