Bagaimana cara mengurutkan gambar ke dalam folder, berdasarkan resolusi?

9

Latar Belakang: Saya punya folder yang penuh dengan gambar desktop yang disimpan. Saya ingin memasukkannya ke dalam folder, berdasarkan resolusi mereka - 1024x768, dll. Membuat folder dengan cepat adalah bonus. Saat ini, semua gambar ada di dalam folder, tetapi beberapa di antaranya ada di dalam folder. Saya bisa menggabungkannya dengan tangan, jika itu membuat segalanya lebih mudah.

Saya lebih suka terminal, meskipun saya masih agak pemula. Saya tidak banyak programmer sama sekali, sungguh.

Saya menggunakan Mac OS X, tapi saya tidak menentang untuk menginstal aplikasi tambahan untuk mencapai ini (MacPorts?), Atau bahkan menggunakan OS lain (saya punya pengaturan Windows XP, Windows Vista, dan Ubuntu 9 sekarang di dalam VMWare ).

Bantuan apa pun akan dihargai! Terima kasih!

mudah terbakar
sumber

Jawaban:

11

Saya tahu ini adalah topik lebih dari setahun (maaf tentang itu) tapi saya pikir seseorang mungkin memerlukan skrip yang berfungsi penuh, jadi ini dia. Mengambil ide-ide di sini dan menyusunnya menjadi naskah yang kita dapatkan

#!/bin/bash

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

Serius, terima kasih telah membalas, semuanya! Saya kembali ke sini, lebih berpengalaman, dan sebagian besar komentar di sini lebih masuk akal sekarang.

Saya sedikit mengubah skrip @ zatatlan untuk mengakomodasi spasi dalam nama file dan menambahkan lebih banyak ekstensi file.

#!/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
mudah terbakar
sumber
3

Dimungkinkan untuk menggunakan imagemagick untuk mendeteksi resolusi gambar . Bungkus dalam bash loop dan begitulah. Saya tidak akan menunggu sampai saya tiba di rumah dengan bash shell, jadi di sini ada sesuatu di luar kepala saya. Sintaksnya mungkin salah, tetapi mungkin memberi Anda beberapa petunjuk.

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

   mv $image $res
done

Script membuat direktori dengan cepat. Baik bash dan imagemagick tersedia untuk mac.

pengguna4126
sumber
Anda dapat membuat skrip sedikit lebih pendek dan sederhana dengan mengganti ifblok dengan sederhana mkdir -p $res.
Ryan C. Thompson
2

Ada Amok EXIF ​​Sorter

Penyortir AmoK Exif dapat mengubah nama gambar, dan memindahkan atau menyalinnya ke folder sewenang-wenang.
Folder dapat dinamai sesuai dengan data exif.

Menawarkan preview langsung dari nama file, gambar terintegrasi dan penampil data exif, drag & drop, tampilan thumbnail, pemeriksaan pembaruan otomatis, dan profil untuk kamera dan pengguna yang berbeda.

Juga mendukung file Video berdasarkan tanggal pembuatan, file berformat IPTC.

Ditulis dalam JAWA , berfungsi pada semua platform yang mendukung JRE5.
Periksa daftar fitur pada tautan.

Jangan berkecil hati dengan bahasa Jerman.
Tarik ke bawah Sprachedan pilih Englisch, mulai ulang aplikasi.

nik
sumber
1

The ImageMagick mengidentifikasi perintah dapat memberikan lebar dan tinggi dalam pixel, misalnya

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

Anda bisa memasukkannya ke dalam skrip bash sebagai bagian dari for for loop dan, untuk keamanan, salin file ke direktori yang dinamai sama dengan resolusinya (periksa apakah ada dan buat jika tidak).

mas
sumber
0

Cara dasar yang akan memberikan urutan resolusi kasar adalah mengatur berdasarkan ukuran file. Ini adalah sesuatu yang harus dibangun ke dalam OS apa pun, jadi Anda tidak perlu sesuatu yang istimewa. Tangkapan besar dengan ini adalah bahwa format untuk foto Anda harus sama agar ini berfungsi. Ini bukan solusi yang sempurna, tetapi ini bisa menjadi penghalang yang mudah sampai Anda menemukan sesuatu yang benar-benar sesuai dengan tagihan.

DHayes
sumber