Como ordenar imagens em pastas, com base na resolução?

8

Background: Eu tenho uma pasta cheia de imagens salvas da área de trabalho. Eu gostaria de colocá-los em pastas, com base em sua resolução - 1024x768, etc. Criar as pastas rapidamente é um bônus. Atualmente, as imagens estão todas em uma pasta, mas algumas delas estão em subpastas. Eu posso mesclá-los manualmente, se isso facilitar as coisas.

Eu preferiria o terminal, embora eu ainda seja meio novato. Eu não sou muito de um programador, na verdade.

Estou usando o Mac OS X, mas não me oponho a instalar aplicativos extras para realizar isso (MacPorts?) ou mesmo usar outro sistema operacional (tenho o Windows XP, o Windows Vista e o Ubuntu 9 configurados corretamente agora dentro do VMWare).

Qualquer ajuda seria apreciada! Obrigada!

    
por flammable 03.08.2009 / 13:55

6 respostas

4

Sério, obrigado por responder a todos! Eu voltei a isso, mais experiente, e a maioria dos comentários aqui faz mais sentido agora.

Eu ajustei o script do @ zatatlan um pouco para acomodar espaços em nomes de arquivos e adicionar mais extensões de arquivo.

#!/bin/bash

for image in *.jpg *.JPG *.jpeg *.JPEG *.gif *.GIF *.bmp *.BMP *.png *.PNG;
    do res=$(identify -format %wx%h\n "$image");
    mkdir -p $res;
    mv "$image" $res;
done
    
por 04.05.2013 / 19:27
10

Eu sei que é um tópico de mais de um ano (desculpe por isso), mas eu acho que alguém pode precisar do script de trabalho completo, então aqui está. Tomando as ideias aqui e compilando em um script nós conseguimos.

#!/bin/bash

for image in *.jpg;
    do res=$(identify -format %wx%h\n $image);
    mkdir -p $res;
    mv $image $res;
done
    
por 13.11.2010 / 20:34
3

É possível usar imagemagick para detectar a resolução da imagem . Enrole-o em um loop bash e lá vai você. Eu não vou esperar até chegar em casa para uma concha, então aqui está algo fora da minha cabeça. A sintaxe é provavelmente errada, mas pode dar algumas pistas.

for image in $('*.jpg') do
   res='identify $image | grep -o 'Resolution:''
   if [ ! -d $res ]; then
     mkdir $res
   fi

   mv $image $res
done

O script cria diretórios na hora. Ambos bash e imagemagick estão disponíveis para mac.

    
por 03.08.2009 / 14:08
2

Existe Amok EXIF Sorter

AmoK Exif Sorter can rename pictures, and move or copy them to arbitrary folders.
The folders can be named according to the exif data.

Offers a live preview of the file names, an integrated picture and exif data viewer, drag & drop, thumbnail view, automatic update check, and profiles for different cameras and users.

Also supports Video files by creation date, IPTC formatted files.

Escrito em JAVA , funciona em todas as plataformas que suportam JRE5 .
Confira a lista de recursos no link.

Não desanime com a língua alemã.
Puxe para baixo Sprache e selecione Englisch , reinicie o aplicativo.

    
por 03.08.2009 / 14:16
1

O comando de identificação ImageMagick pode fornecer a largura e a altura em pixels, por exemplo

~$ identify -format %w_%h\n *jpg 
2868_3429
1056_960

Você pode colocar isso em um script bash como parte de um loop for e, por segurança, copiar os arquivos em um diretório que tenha o mesmo nome da resolução (verifique se existe e crie, se não).

    
por 03.08.2009 / 14:13
0

Uma maneira básica que dará uma ordem aproximada de resolução é organizar por tamanho de arquivo. Isso é algo que deve ser construído em qualquer sistema operacional, para que você não precise de nada especial. O grande problema com isso é que o formato das suas fotos precisaria ser o mesmo para que isso funcionasse. Esta não é uma solução perfeita, mas pode ser um intervalo fácil até você encontrar algo que realmente se encaixe no projeto.

    
por 03.08.2009 / 14:25