Soru yorumlarındaki bazı insanlar defalarca bana çok önemsiz olduğunu söylediğinden, aslında yaptım: Geçerli dizindeki görüntüleri kullanıcıya göre gerçek başa baş bırakarak sıralayan bir uygulama . 1
.NET 2 için C # ile yazılmıştır. Mono üzerinde çalışmaktadır (şimdiye dek Linux'ta test edilmiştir). PATH üzerinde dcraw gerektirir (Windows veya OS X için derlenebilir yürütülebilir dosya buradan indirilebilir ).
Şu anda kullanıcı etkileşimi çok temeldir. Bu muhtemelen değişebilir. Ayrıca, kod böyle bir kesmek-işi ile her zamanki gibi kötü bir karmaşa.
Uygulama, sıralanacak görüntüleri içeren bir dizinde başlatılmalıdır. Daha sonra bulabildiği ve kullanabileceği tüm görüntüleri yüklemeye devam eder (JPEG, GIF, PNG, BMP yerel olarak desteklenir, diğer tüm biçimler dcraw tarafından desteklenir veya değilse atlanır). Her görüntüyü hızlandırmak için bellekte önceden yüklenmiş olduğundan görüntü sayısını makul tutun - Yaklaşık 600 görüntü içeren bir klasörde başlatmayı denedim ve yaklaşık 2 GiB bellek kullanımıyla sonlandırdım.
Bundan sonra solda ve sağda bir görüntü ile iki bölmeli bir görünüm elde edersiniz. İkisinin en iyisini düşündüğünüze tıklayın. Daha sonra iki yeni görüntü elde edeceksiniz. Bitene kadar devam edin. İsterseniz programı kapatabilirsiniz, kaldığınız yerden devam eder.
Gerekli tüm karşılaştırmalar yapıldıktan sonra 2 sonuç görülebilir:
Soldaki en üstte ve en altta en düşük sıralamaya sahip görüntü sıralaması vardır.
Yapılacaklar listesi:
- Sıralanacak görüntüleri seçmeye izin ver.
- Portre resimlerinin her zaman yatay yönde görüntülenmesini sorun (en azından ham görüntüler için. Dcraw döndürmeye izin verir, ancak bunu otomatik olarak yapamaz ve harici olarak bulmanın kolay bir yolunu göremiyorum).
- Çok sayıda görüntü için bellek kullanımını azaltın.
- Görüntüleri önceden karıştırın, böylece neredeyse aynı görüntülerin patlamalarının doğrudan birbirleriyle karşılaştırılması daha az olasıdır.
- Sıralama iş parçacığı ve UI arasındaki eşitlemeyi, artık
Thread.Sleep
kullanmaya ve sorgulamaya değil, doğru eşitleme yöntemlerini kullanarak değiştirin.
- 1: 1 önizleme ekleyin (veya en azından daha büyük bir tane). Şu anda bu, piksel seviyesindeki olayları değerlendirmek için kullanılamaz.
Saat 5:26, bu yüzden şimdi hacklemeyi kesiyorum.
Kaynak kodu SVN depomda bulunabilir ve MIT lisansı altında yayınlanmıştır. Ben yamalar ;-) hoş geldiniz
Yukarıdaki ekran görüntüleri görüntüleri benimdir.
1 Tabii ki diğerleri beni inandırmak isteyecek kadar önemsiz değildi. Libraw ile uzun bir mücadeleden sonra, sadece yeni rotaya girdim. Güzel değil, ama asgari miktarda kodla çalışıyor.
2 Bu sırasına göredir n günlüğüne 2 n n 20 resimler için senin bir işi yaklaşık 20 × 4.3 ≈ 85 karşılaştırmaları bekleyebilirsiniz, böylece - - karşılaştırıldığında resimlerin sayısı Biliyorum, onda da değil az sayıda. Bahsettiğiniz 300 görüntü için 2400 civarında bir sayı elde edersiniz. Manuel olarak yapılması gereken gerçek sayı (a) farklıdır (çünkü karmaşıklıklar doğrusal faktörü içermez) ve (b) şu ana kadar gözlemlediğim kadar küçük. Tutarsızlıklardan kaçınmak için, kullanıcıya aynı iki görüntüde asla iki kez istenmeyecektir (her iki sırada da).