Pular para o conteúdo

Converter todas as imagens de um diretório

Script que utiliza o convert (do pacote ImageMagick) para converter entre formatos de imagens. No exemplo estou convertendo imagens no formato .png para .ico, porém basta alterar os formatos dentro do script para os formatos desejados e/ou os efeitos disponíveis com o convert.

Embora simples, o script serve também como exemplo de iteração nos arquivos dentro de um diretório, podendo ser adaptado para outras funcionalidades.
Vinícius Evandro Gregório gsi.vinicius
Hits: 12.738 Categoria: Shell Script Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Script que utiliza o convert (do pacote ImageMagick) para converter entre formatos de imagens. No exemplo estou convertendo imagens no formato .png para .ico, porém basta alterar os formatos dentro do script para os formatos desejados e/ou os efeitos disponíveis com o convert.

Embora simples, o script serve também como exemplo de iteração nos arquivos dentro de um diretório, podendo ser adaptado para outras funcionalidades.
Download converte-png-ico.sh Enviar nova versão

Esconder código-fonte

#!/bin/bash
#Conversor entre formatos de imagem - Vinícius Evandro Gregório

# salva o diretorio atual
currentdir=`pwd`

# recuperar todos os arquivos *.png
for original in *.png; do
  
   #substitui as extensões
   nome="${original/.png/.ico}"

   echo $nome

   # converte o .png em .ico
   convert $original $nome

done

# mover para o diretório da nova extensão
dirtemp=$currentdir/ico
   
# se o diretorio não existir, entao criar o diretorio
if [ ! -e $dirtemp ]; 
  then
    mkdir $dirtemp
fi

mv *.ico $dirtemp

Testar se variável é numérica

Abrindo e Fechando a Gaveta do CD-Rom de Forma Interativa

Montar Imagem iso no Nautilus-Script ou no Nautilus-Actions

yad_pdf2text - Converter pdf em texto usando pdftotext+yad

Monitor de recursos do sistema

#1 Comentário enviado por esojep em 29/10/2008 - 09:03h
DICA: por exemplo, se você quiser apenas converter os arquivos jpg para png faça:

$ for f in *.jpg; do convert -verbose $f ${f%.*}.png; done

para converter entre outros formatos, basta mudar o '.jpg' (arquivo origem) e o '.png' (arquivo destino)

Explicando: para cada arquivo com a extensão '.jpg' o for converte (usando o comando convert) para o formato .png e renomeia o arquivo convertido trocando sua extensão .jpg pelo .png ( ${f%.*}.png )

OBS: o 'for' pode ser usado em diversas situações, use a imaginação! =)
#2 Comentário enviado por esojep em 29/10/2008 - 09:05h
Mais uma dica, em vez de ter que editar o seu script e alterar os formatos dos arquivos a serem convertidos, seria mais interessante passa-los como argumento na linha de comando utilizando as variaveis $1, $2, ...

[]s
#3 Comentário enviado por esojep em 29/10/2008 - 09:08h
Só mais uma dica: man convert
Esse comando tem muitas opções interessantes!

Contribuir com comentário

Entre na sua conta para comentar.