remove imagens com baixa resolução

1

Gostaria de saber se existe uma maneira de deletar recursivamente imagens de um diretório, que tem resolução menor do que eu desejo, usando ferramentas de linha de comando (Fedora 19)?

Por exemplo, desejo manter imagens com pelo menos 3000px na horizontal e 2000px na vertical e excluir outras.

    
por shomel 09.11.2013 / 19:55

1 resposta

0

Aqui está uma possível solução bash , dependendo do comando identify de ImageMagick para informar a resolução da imagem:

( find . -type f | xargs identify ) | while read i
do
  fn1=${i%%[*}
  fn=${i%% *}
  tail=${i#* * }
  size=${tail%% *}
  xsize=${size%%x*}
  ysize=${size##*x}
  if [[ ( $xsize -le 3000 ) || ( $ysize -le 2000 ) ]]
  then
    rm "$fn"
  fi
done

No entanto, eu faria um backup completo primeiro e, em seguida, usaria algo mais poderoso para analisar (e verificar novamente) a saída de identify antes de excluir arquivos automaticamente, como perl .

    
por 11.11.2013 / 12:46