Karena beberapa orang dalam pertanyaan berkomentar berulang kali mengatakan kepada saya itu agak sepele, saya benar-benar melakukannya: Aplikasi yang mengurutkan gambar dalam direktori saat ini dengan meninggalkan perbandingan head-to-head yang sebenarnya kepada pengguna . 1
Ditulis dalam C # untuk .NET 2. Bekerja pada Mono (diuji pada Linux sejauh ini) juga. Membutuhkan dcraw pada PATH (dikompilasi yang dapat dieksekusi untuk Windows atau OS X dapat diunduh di sini ).
Saat ini interaksi pengguna sangat sederhana. Ini mungkin dapat berubah. Juga kodenya berantakan seperti biasa dengan hack-job seperti itu.
Aplikasi harus dimulai di direktori yang berisi gambar untuk disortir. Kemudian mulai memuat semua gambar yang dapat ditemukan dan ditangani (JPEG, GIF, PNG, BMP didukung secara native, semua format lain didukung oleh dcraw atau dilewati jika tidak). Usahakan jumlah gambar masuk akal, karena setiap gambar dimuat dalam memori untuk mempercepat tampilan - Saya mencoba memulainya pada folder dengan sekitar 600 gambar dan menghentikannya di sekitar 2 penggunaan memori GiB.
Setelah itu Anda mendapatkan tampilan dua pane dengan gambar di sebelah kiri dan di sebelah kanan. Klik salah satu yang Anda anggap terbaik dari keduanya. Anda kemudian akan mendapatkan dua gambar baru. Lanjutkan sampai selesai. Anda dapat menutup program jika Anda mau, itu akan melanjutkan di mana Anda tinggalkan.
Setelah semua perbandingan yang diperlukan telah dilakukan 2 hasilnya dapat dilihat:
Ini memiliki daftar gambar diurutkan di sebelah kiri dengan peringkat tertinggi di atas dan peringkat terendah di bawah.
Daftar Todo:
- Izinkan memilih gambar untuk disortir.
- Memecahkan masalah bahwa gambar potret selalu ditampilkan dalam orientasi lanskap (setidaknya untuk gambar mentah. Dcraw memungkinkan rotasi tetapi tidak dapat melakukannya secara otomatis dan saya tidak melihat cara mudah untuk menemukan hal itu secara eksternal).
- Kurangi penggunaan memori untuk sejumlah besar gambar.
- Kocok gambar sebelumnya sehingga semburan gambar yang hampir identik lebih kecil kemungkinannya dibandingkan secara langsung satu sama lain.
- Ubah sinkronisasi antara utas penyortiran dan UI untuk tidak lagi mengandalkan
Thread.Sleep
dan polling tetapi untuk menggunakan metode sinkronisasi yang tepat.
- Tambahkan pratinjau 1: 1 (atau setidaknya yang lebih besar). Saat ini ini tidak dapat digunakan untuk menilai hal-hal pada tingkat piksel.
Ini 5:26 di sini, jadi saya berhenti meretas itu sekarang.
Kode sumber dapat ditemukan di repositori SVN saya dan dirilis di bawah lisensi MIT. Saya menyambut patch ;-)
Gambar di screenshot di atas adalah milik saya.
1 Tentu saja itu tidak sepele seperti yang orang lain ingin membuat saya percaya. Setelah perjuangan panjang dengan Libraw, saya hanya pergi rute dcraw. Tidak cantik, tetapi bekerja dengan jumlah kode minimal.
2 Ini adalah dalam urutan n log 2 n di mana n adalah jumlah gambar dibandingkan - jadi, untuk 20 gambar Anda dapat mengharapkan sesuatu sekitar 20 × 4.3 4.3 85 perbandingan - Saya tahu, ini bukan jumlah yang kecil. Untuk 300 gambar yang Anda sebutkan, Anda akan mendapatkan sekitar 2.400. Angka aktual yang harus dilakukan secara manual adalah (a) berbeda (karena kompleksitas menghilangkan faktor linier) dan (b) sejauh yang saya amati sejauh ini, lebih kecil. Untuk menghindari ketidakkonsistenan, pengguna tidak akan pernah diminta dua kali pada dua gambar yang sama (urutan apa pun) dan tidak pernah diminta dengan gambar yang sama di kedua sisi.