Primeramente devemos ter o ImageMagick instalado.
sudo apt install imagemagick
Depois de instalar, podemos usar o comando convert para realizar a conversão de imagens
#!/bin/bash
# Pede ao usuário para digitar o caminho da pasta onde estão as imagens
read -p "Digite o caminho do diretório com as imagens .jpg: " diretorio
# Verifica se a pasta digitada existe
if [ ! -d "$diretorio" ]; then
echo "Erro: O diretório '$diretorio' não existe." # Mostra mensagem de erro
exit 1 # Encerra o script com erro
fi
# Verifica se o programa 'convert' está instalado no sistema
if ! command -v convert &> /dev/null; then
echo "Erro: O comando 'convert' (ImageMagick) não está instalado."
echo "Você pode instalá-lo com: sudo apt install imagemagick"
exit 1 # Encerra o script com erro
fi
# Para cada imagem que termina com .jpg dentro da pasta informada...
for imagem in "$diretorio"/*.jpg; do
# Verifica se o arquivo existe (pode acontecer da pasta não ter .jpg)
if [ -f "$imagem" ]; then
# Pega apenas o nome da imagem, sem o caminho e sem a extensão
nome_base=$(basename "$imagem" .jpg)
# Cria o nome do novo arquivo com a extensão .png
novo_arquivo="$diretorio/$nome_base.png"
# Usa o comando convert para transformar a imagem de .jpg para .png
convert "$imagem" "$novo_arquivo"
# Verifica se o comando deu certo
if [ $? -eq 0 ]; then
echo "Sucesso: '$imagem' convertido para '$novo_arquivo'"
else
echo "Falha: Erro ao converter '$imagem'"
fi
fi
done
# Quando acabar tudo, avisa o usuário
echo "Processo concluído."
Salvar o script em um arquivo e torne o script executável:
chmod +x converter_jpg_para_png.sh
Executar o script:
./converter_jpg_para_png.sh