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