Para realizar a conversão automática de imagens no formato .jpg para .png, iniciei verificando se a ferramenta ImageMagick (responsável pelo comando convert) já estava instalada no sistema:
convert --version
Como o utilitário não estava disponível, procedi com a instalação:
sudo apt update
sudo apt install imagemagick -y
Criei um repositório local para organizar as imagens que seriam convertidas e ajustei suas permissões:
mkdir -p /home/jezebel/imagens
chmod 755 /home/jezebel/imagens
A partir do terminal do Windows, utilizei o comando scp para enviar os arquivos .jpg diretamente para o diretório criado na VM:
C:\Windows\System32>scp C:\Users\notre\Documents\vm\*.jpg jezebel@10.0.0.194:/home/jezebel/imagens/
A transferência ocorreu com sucesso:
jezebel@10.0.0.194's password:
jpeg.jpg 100% 6289 130.7KB/s 00:00
Criei o script jpg_to_png.sh, responsável por:
- solicitar ao usuário o diretório contendo as imagens;
- validar a existência do diretório;
- identificar arquivos .jpg e .jpeg (maiúsculos ou minúsculos);
- converter cada imagem para .png utilizando o comando convert.
Script completo utilizado:
#!/bin/bash
read -r -p "Digite o caminho do diretório com as imagens JPG: " diretorio
if [ ! -d "$diretorio" ]; then
echo "Diretório não encontrado: $diretorio"
exit 1
fi
shopt -s nullglob nocaseglob
arquivos=( "$diretorio"/*.jpg "$diretorio"/*.jpeg )
if [ ${#arquivos[@]} -eq 0 ]; then
echo "Nenhuma imagem JPG/JPEG encontrada no diretório."
exit 0
fi
echo "Iniciando conversão..."
for imagem_jpg in "${arquivos[@]}"; do
imagem_png="${imagem_jpg%.*}.png"
if convert "$imagem_jpg" "$imagem_png"; then
echo "Convertido: $imagem_png"
else
echo "Falha ao converter: $imagem_jpg"
fi
done
echo "Conversão concluída!"
Antes de executar, dei permissão para torná-lo executável:
jezebel@Linux:~$ chmod +x jpg_to_png.sh
Em seguida rodei o script:
jezebel@Linux:~$ ./jpg_to_png.sh
Saída:
Digite o caminho do diretório com as imagens JPG: /home/jezebel/imagens
Iniciando conversão...
Convertido: /home/jezebel/imagens/jpeg.png
Conversão concluída!
Verificando:
jezebel@Linux:~$ cd imagens
jezebel@Linux:~/imagens$ ls
jpeg.jpg jpeg.png