Çözünürlüğe göre görüntüleri klasörler halinde nasıl sıralayabilirim?


9

Arka plan: Kaydedilmiş masaüstü resimleriyle dolu bir klasörüm var. Onları çözünürlüklerine göre klasörlere koymak istiyorum - 1024x768, vb. Klasörleri anında oluşturmak bir bonus. Şu anda, görüntülerin tümü bir klasörde, ancak bazıları alt klasörlerde. Eğer işleri kolaylaştırırsa onları elle birleştirebilirim.

Terminali tercih ederim, ama yine de bir tür acemi. Gerçekten bir programcı değilim.

Mac OS X kullanıyorum, ancak bunu gerçekleştirmek için ekstra uygulamalar yüklemeye (MacPorts?), Hatta başka bir işletim sistemi kullanmamaya (VMWare'de şu anda Windows XP, Windows Vista ve Ubuntu 9 kurulumuna sahibim) ).

Herhangi bir yardım mutluluk duyacağız! Teşekkür ederim!

Yanıtlar:


11

Biliyorum bir yıldan fazla bir konu (bunun için üzgünüm) ama birisi tam çalışma komut dosyası gerekebilir, bu yüzden işte burada. Fikirleri buraya alıp bir senaryoya dönüştürüyoruz.

#!/bin/bash

for image in *.jpg;
    do res=$(identify -format %wx%h\\n $image);
    mkdir -p $res;
    mv $image $res;
done

4

Cidden, cevap verdiğiniz için teşekkürler, herkes! Buna geri döndüm, daha deneyimli ve buradaki yorumların çoğu şimdi daha anlamlı.

Dosya adlarındaki boşlukları barındırmak ve daha fazla dosya uzantısı eklemek için @ zatatlan'ın komut dosyasını biraz değiştirdim.

#!/bin/bash

shopt -s nullglob # The script spits errors if this is not set and there are, say, no *.png files.
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

3

Görüntü çözünürlüğünü tespit etmek için imagemagick kullanmak mümkündür . Bir bash döngüsüne sarın ve işte gidiyorsunuz. Bir bash kabuğuna gelene kadar beklemeyeceğim, işte başımın üstünde bir şey var. Sözdizimi muhtemelen yanlıştır, ancak size bazı ipuçları verebilir.

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

   mv $image $res
done

Komut dosyası anında dizinler oluşturur. Mac için hem bash hem de imagemagick kullanılabilir.


ifBloğu bir basit ile değiştirerek komut dosyasını biraz daha kısa ve basit hale getirebilirsiniz mkdir -p $res.
Ryan C. Thompson

2

Orada Amok EXIF Sorter

AmoK Exif Sıralayıcısı resimleri yeniden adlandırabilir ve keyfi klasörlere taşıyabilir veya kopyalayabilir.
Klasörler exif verilerine göre adlandırılabilir.

Dosya adlarının canlı önizlemesini, entegre bir resim ve exif veri görüntüleyici, sürükle ve bırak, küçük resim görünümü, otomatik güncelleme kontrolü ve farklı kameralar ve kullanıcılar için profiller sunar.

Ayrıca oluşturma tarihine göre Video dosyalarını, IPTC formatlı dosyaları destekler.

Yazılı JAVA , destekleyen tüm platformlarda çalışır JRE5.
Bağlantıdaki özellik listesine göz atın.

Alman dilinden vazgeçmeyin.
Aşağı çekin Spracheve seçin Englisch, uygulamayı yeniden başlatın.


1

ImageMagick tespit komutu size genişlik ve piksel olarak yüksekliği, örneğin verebilir

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

Bunu for döngüsünün bir parçası olarak bash betiğine koyabilir ve güvenlik için dosyaları çözünürlükle aynı adlı bir dizine kopyalayabilirsiniz (var olup olmadığını kontrol edin ve yoksa oluşturun).


0

Kaba bir çözüm sırası verecek temel bir yol, dosya boyutuna göre düzenlemektir. Bu, herhangi bir işletim sistemine yerleştirilmesi gereken bir şeydir, bu nedenle özel bir şeye ihtiyacınız yoktur. Bununla BÜYÜK yakalama, fotoğraflarınızın formatının çalışması için aynı olması gerektiğidir. Bu mükemmel bir çözüm değildir, ancak gerçekte faturaya uyan bir şey bulana kadar kolay bir durma boşluğu olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.