Olá!
Este post mostra como redimensionar fotos. Por exemplo, se as fotos forem uma matriz 3072x2304, o script reduzirá para 1/4 deste tamanho tornando 768x576.
Deve ser executado nos mesmo diretório que estão as fotos. Neste momento a variável dirorig (diretório de origem) armazena o comando pwd mantendo intacto os arquivos. Deve-se criar o diretório menor um nível abaixo do diretório onde estão as fotos para dar um destino às fotos tratadas (variável dirtrat). Para obter o tamanho de cada arquivo é necessário usar a saída do awk para obter o terceiro campo como entrada do sed para extrair os números no meio de outros caracteres.
Uma diferença com relação ao post anterior é a forma de selecionar os arquivos. No anterior, é usado um for porque é necessário incrementar um contador. O critério de seleção é um ls
#!/bin/bash
##### Configuracao ####
# diretorio de origem
dirorig="$PWD"
# Entre com o diretorio onde ficarao as fotos tratadas
dirtrat="$PWD/menor"
mkdir "$dirtrat"
ls -1 *.jpg | {
while read arq
do
l=`identify "$arq" | awk '{printf "%s\n",$3}' | sed 's/x/ /' | awk '{printf "%s\n",$1}'`
c=`identify "$arq" | awk '{printf "%s\n",$3}' | sed 's/x/ /' | awk '{printf "%s\n",$2}'`
width=`echo $l/4 | bc` # 1/4 do comprimento
height=`echo $c/4 | bc` # 1/4 da altura
echo linha=$width coluna=$height "$arq"
if [ "$width" -gt "$height" ]
then
convert -resize "$witdh"x"$height" "$arq" "$dirtrat"/"$arq"
echo "$witdh"x"$height"
else
convert -resize "$height"x"$witdh" "$arq" "$dirtrat"/"$arq"
echo "$height"x"$witdh"
fi
done
}
Um exemplo de aplicação deste script é fazer com que os anexos dos e-mail sejam bem mais leves. Ou mesmo quando for criar uma página na web, seu carregamento será bem mais rápido do que se for usar a do tamanho original.
Nenhum comentário:
Postar um comentário