Recebi um grande conjunto de imagens. Alguns em escala de cinza, outros em cores. Eles estão todos em uma mistura de tiff, png, jpeg, etc... Eles estão todos na minha unidade local.
Meu objetivo é separar essas imagens pela paleta de cores (apenas em tons de cinza ou totalmente coloridas), por tamanho de imagem (largura e altura), por tamanho de arquivo, etc... em diretórios diferentes.
Não há nenhum requisito na ordem de processamento, pois o que preciso filtrar é aplicar and
a todas as regras que desejo. Ou seja, apenas imagens que atendem a todos os critérios.
Como faço para automatizar isso?
Responder1
Ferramenta Exifdeve atender às suas necessidades. Isso éimensamentepoderoso, suporta um grande número detipos de arquivoemetatagse permite expressões condicionais Perl complexas e arquivos de configuração com base em tags e vários outros critérios. Eu aconselho você a ler odocumentaçãocompletamente, especialmente oseçãodedicado a renomear arquivos e criar diretórios de destino com base em critérios especificados pelo usuário. Finalmente, se você ficar confuso ou travado, poste nofórumcertamente irá ajudá-lo, já que o desenvolvedor e a comunidade são muito úteis.
Como um exemplo pequeno e bastante simples, o comando a seguir moverá todos os arquivos de imagem reconhecidos que possuemqualqueruma largura de 1024pxoualtura de 480pxe(em ambos os casos) um tamanho de arquivo inferior a 200 KB em um diretório (que será criado se necessário) chamado Moved
:
exiftool -if "((($ImageWidth==1024) || ($ImageHeight==480)) && ($FileSize#<204800))" -directory=Moved *.*
Nota: Aqui $ é seguido por um nome de tag e # é opcionalmente anexado para desabilitar a conversão de impressão (ou seja, para usar formato numérico para tamanho de arquivo em vez de formato legível como KB, MB etc.). Novamente, tudo está explicado na documentação.