1
resposta

[Projeto] Mãos na massa: conversão de arquivos

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

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Olá, Jezebel! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou de forma exemplar o uso do ImageMagick para automatizar o processo, utilizou muito bem os comandos de terminal para gerenciar diretórios e permissões e ainda demonstrou excelente domínio ao estruturar um script robusto para conversão de imagens.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!