Converter todas as imagens de um diretório

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

[ Hits: 12.317 ]

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

Montando pen-drive com Dialog

smbldap-groupCopy copiar grupos de user1 para user2

Adicionar e Deletar usuários do Samba/Squid

Instalação Zabbix-agent CentOS5

Script para testar a conexão do computador


  

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