¿Conversión masiva de imágenes de un formato a otro?

44

Quiero convertir un lote de imágenes, casi 100, de formato jpg a png. ¿Cómo puedo hacer esto sin cambiarles el nombre, sino convertir el formato?

opu 웃
fuente
Usa el convertcomando. No realmente. Pero querrás cambiarles el nombre de something.jpg a something.png.
Jos
1
@jos, ¡De tu comentario no entiendo qué debo hacer!
opu 웃
No había terminado de editar ;-) Primero, use el convertcomando en un solo archivo .jpg y vea si funciona. Luego, escriba un script que recorra los archivos .jpg y los convierta en archivos .png.
Jos
No mencionaste cómo puedo usar el convertcomando en un solo archivo .jpg. Y no sé cómo escribir un script que recorra los archivos .jpg.
opu 웃

Respuestas:

65

Prueba estos comandos,

mogrify -format png /path/*.jpg    

Esto convertirá todos los archivos .jpg en archivos .png y guardará los archivos convertidos en el mismo directorio.

mv /path/*.png ~/Desktop/pic

Esto moverá todos los .pngarchivos (convertidos) al picdirectorio que reside en el escritorio.

Avinash Raj
fuente
¿Debo cambiar el directorio?
opu 웃
1
/path/*.jpgrepresenta el directorio donde se almacenan los archivos .jpg.
Avinash Raj
También probé este comando después de cambiar el directorio: mogrify -format png .jpgesto también funciona bien.
opu 웃
La respuesta a continuación es mejor , ya que tiene en cuenta los límites impuestos a ARGV.
Evan Carroll
Aquí hay una gran guía: algissalys.com/how-to/… También cubre el cambio del tamaño de la imagen, lo cual es útil, es decir. agregando -resize 800x cambia el lado más largo a 800 :)
Craig Lambie
42

Usando ImageMagick .

Primero instale imagemagick:

sudo apt-get install imagemagick

Intente convertir solo una imagen al principio:

convert image.jpg image.png

Ahora convierta todo:

mogrify -format png *.jpg

EDITAR

También debe dividirlo en trozos que encajen para evitar alcanzar el límite de cuánto puede poner en una línea de comando. Esto debería funcionar mejor:

find -name '*.jpg' -print0 | xargs -0 -r mogrify -format png

Los -print0y -0se usan para manejar espacios en los nombres de archivo y los -rmedios no ejecutan mogrify si no hay nada que hacer.

Fuente: https://stackoverflow.com/questions/1010261/running-a-batch-with-imagemagick

EDITAR 2 Cambió png y jpg según el comentario de @ Glutanimate.

EDITAR 3 Cambió png a jpg en la última sugerencia.

Parto
fuente
Una imagen convertida con éxito. Pero cuando usé el comando para convertir todo lo que mostraba mogrify.im6: unable to open image ``*.png': No such file or directory @ error/blob.c/OpenBlob/2638.``mogrify.im6: unable to open file ``*.png' @ error/png.c/ReadPNGImage/3667.
opu 웃
Tendrás que ir cda ese directorio primero. Si están en el escritorio, ejecute cd ~/Desktopprimero y luego intente convertir de nuevo.
Parto
Cambié el directorio
opu 웃
@Parto creo que debería ser mogrify -format png *.jpg. El OP pregunta por convertir jpg → png.
Glutanimate
no funcionó para mí con 14.04 @Parto
talha06
0

Sé que ha pasado mucho tiempo desde que se formuló esta pregunta, pero hay una pieza brillante de software que no se ha mencionado que he usado mucho.

http://photobatch.wikidot.com/ también conocido como Phatch. Literalmente convierte cualquier cosa de cualquier cosa en cualquier otra cosa en términos de imagen. No se había actualizado durante un tiempo, pero ahora afirma ser lanzado para ubuntu 17.10. Darle una oportunidad. Estoy seguro de que estarás muy feliz con eso.

George Tasker
fuente
2
Intenté obtener este software, falta el enlace de "descarga" al archivo deb en el enlace anterior, y la versión de "tienda" de Ubuntu me dio este error: a continuación se detallan los errores del administrador de paquetes: la transacción de apt devolvió el resultado de la salida fallida de Ubuntu v 18.10 tal vez? De todos modos, mi experiencia.
Craig Lambie