Converter todas as imagens de um diretório

Publicado por Vinícius Evandro Gregório 28/10/2008

[ Hits: 12.064 ]

Download converte-png-ico.sh




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.

  



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

Scripts recomendados

Mudar Data/Hora

Script com Case para e Excluir pastas

Script para adicionar usuario/computador Samba PDC

Configurador de DNS

Share


  

Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts