4 maneres de convertir per lots el vostre PNG a JPG i viceversa
En informàtica, el processament per lots és l'execució d'una sèrie de tasques en un programa de manera no interactiva. En aquesta guia us oferirem 4 maneres senzilles de convertir per lots diverses imatges .PNG
a .JPG
i viceversa utilitzant les eines de línia d'ordres de Linux.
Utilitzarem l'eina de línia d'ordres de conversió en tots els exemples, però també podeu fer servir mogrify per aconseguir-ho.
La sintaxi per utilitzar convert és:
$ convert input-option input-file output-option output-file
I per mogrify és:
$ mogrify options input-file
Nota: Amb mogrify, el fitxer d'imatge original es substitueix pel nou fitxer d'imatge de manera predeterminada, però és possible evitar-ho mitjançant determinades opcions que podeu trobar a la pàgina de manual.
A continuació es mostren les diferents maneres de convertir per lots totes les imatges .PNG
al format .JPG
, si voleu convertir .JPG
a .PNG
, podeu modificar les ordres segons les vostres necessitats.
1. Converteix PNG a JPG utilitzant les ordres 'ls' i 'xargs'
L'ordre ls us permet llistar totes les vostres imatges png i els xargs permeten crear i executar una ordre de conversió des de l'entrada estàndard per convertir totes les imatges .png
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ó sobre les opcions utilitzades a l'ordre anterior.
-1
: la marca indica a ls que llisti una imatge per línia.-n
: especifica el nombre màxim d'arguments, que és 1 per al cas.-c
: indica a bash que executi l'ordre donada.$ {0%.png}.jpg
: estableix el nom de la nova imatge convertida, el signe % ajuda a eliminar l'extensió de fitxer antiga.
Vaig utilitzar l'ordre ls -ltr
per llistar tots els fitxers per data i hora modificades.
De la mateixa manera, podeu utilitzar l'ordre anterior per convertir totes les vostres imatges .jpg
a .png
ajustant l'ordre anterior.
2. Converteix PNG a JPG mitjançant l'ordre Paral·lel de GNU
GNU Parallel permet a un usuari crear i executar ordres de l'intèrpret d'ordres des d'una entrada estàndard en paral·lel. Assegureu-vos que teniu GNU Parallel instal·lat al vostre sistema, en cas contrari instal·leu-lo mitjançant les ordres adequades a continuació:
$ sudo apt-get install parallel [On Debian/Ubuntu systems] $ sudo yum install parallel [On RHEL/CentOS and Fedora]
Un cop instal·lada la utilitat paral·lela, podeu executar l'ordre següent per convertir totes les imatges .png
al format .jpg
des de l'entrada estàndard.
----------- Convert PNG to JPG ----------- $ parallel convert '{}' '{.}.jpg' ::: *.png ----------- Convert JPG to PNG ----------- $ parallel convert '{}' '{.}.png' ::: *.jpg
On,
{}
: línia d'entrada que és una cadena de substitució substituïda per una línia completa llegida des de la font d'entrada.{.}
: línia d'entrada menys extensió.:::
: especifica la font d'entrada, és a dir, la línia d'ordres de l'exemple anterior on *png o *jpg és l'argument.
Alternativament, també podeu utilitzar ls i ordres paral·leles junts per convertir per lots totes les vostres imatges tal com es mostra:
----------- Convert PNG to JPG ----------- $ ls -1 *.png | parallel convert '{}' '{.}.jpg' ----------- Convert JPG to PNG ----------- $ ls -1 *.jpg | parallel convert '{}' '{.}.png'
3. Converteix PNG a JPG utilitzant l'ordre for loop.
Per evitar l'enrenou d'escriure un script d'intèrpret d'ordres, podeu executar un bucle for
des de la línia d'ordres de la següent 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ó de cada opció utilitzada a l'ordre anterior:
- -c permet l'execució de la instrucció del bucle for entre cometes simples.
- La variable d'imatge és un comptador del nombre d'imatges del directori.
- Per a cada operació de conversió, l'ordre echo informa a l'usuari que una imatge png s'ha convertit al format jpg i viceversa a la línia $image convertida a $ {image%.png}.jpg. li>
- \$ {image%.png}.jpg crea el nom de la imatge convertida, on % elimina l'extensió del format d'imatge antic.
4. Converteix PNG a JPG mitjançant Shell Script
Si no voleu embrutar la vostra línia d'ordres com a l'exemple anterior, escriviu un petit script com aquest:
Nota: intercanvieu adequadament les extensions .png
i .jpg
com a l'exemple següent per a la conversió d'un format a un altre.
#!/bin/bash #convert for image in *.png; do convert "$image" "${image%.png}.jpg" echo “image $image converted to ${image%.png}.jpg ” done exit 0
Deseu-lo com a convert.sh
i feu que l'script sigui executable i després executeu-lo des del directori que conté les vostres imatges.
$ chmod +x convert.sh $ ./convert.sh
En resum, vam cobrir algunes maneres importants de convertir per lots imatges .png
al format .jpg
i viceversa. Si voleu optimitzar imatges, podeu consultar la nostra guia que mostra com comprimir imatges png i jpg a Linux.
També podeu compartir amb nosaltres qualsevol altre mètode, incloses les eines de línia d'ordres de Linux per convertir imatges d'un format a un altre al terminal, o fer una pregunta a la secció de comentaris a continuació.