चूँकि प्रश्न टिप्पणियों में कुछ लोगों ने मुझे बार-बार बताया कि यह बहुत ही तुच्छ था, मैंने वास्तव में यह किया: एक ऐसा अनुप्रयोग जो उपयोगकर्ता की तुलना में वास्तविक हेड-टू-हेड को छोड़कर वर्तमान निर्देशिका में छवियों को क्रमबद्ध करता है । 1
.NET # के लिए C # में लिखा गया है। मोनो पर काम करता है (लिनक्स पर अब तक परीक्षण किया गया है), भी। पथ पर डीसीआर की आवश्यकता होती है (विंडोज या ओएस एक्स के लिए संकलित निष्पादन योग्य डाउनलोड किया जा सकता है )।
वर्तमान में उपयोगकर्ता इंटरैक्शन बहुत अल्पविकसित है। यह संभवतः परिवर्तन के अधीन है। साथ ही कोड एक हैक-जॉब के साथ हमेशा की तरह एक बुरी गड़बड़ है।
एप्लिकेशन को एक निर्देशिका में शुरू किया जाना है जिसमें छवियों को क्रमबद्ध करना है। यह तब सभी चित्रों को लोड करने के लिए आगे बढ़ता है जो इसे पा सकते हैं और संभाल सकते हैं (जेपीईजी, जीआईएफ, पीएनजी, बीएमपी मूल रूप से समर्थित हैं, अन्य सभी प्रारूप या तो डीसीआर द्वारा समर्थित हैं या नहीं तो छोड़ दिया गया है)। छवियों की संख्या को उचित रखें, क्योंकि प्रत्येक छवि को प्रदर्शित करने के लिए मेमोरी में पहले से लोड किया जाता है - मैंने इसे लगभग 600 छवियों वाले फ़ोल्डर पर शुरू करने का प्रयास किया और इसे लगभग 2 GiB स्मृति उपयोग पर समाप्त कर दिया।
उसके बाद आपको बाईं और दाईं ओर एक छवि के साथ दो-फलक दृश्य मिलता है। उस पर क्लिक करें जिसे आप दो में से सबसे अच्छा मानते हैं। फिर आपको दो नई छवियां मिलेंगी। जब तक किया जारी रखें। आप प्रोग्राम को बंद कर सकते हैं यदि आप चाहें, तो यह फिर से शुरू हो जाएगा जहां आपने छोड़ा था।
सभी आवश्यक तुलनाओं के बाद 2 परिणाम देखे जा सकते हैं:
इसमें बाईं ओर छवियों की क्रमबद्ध सूची सबसे ऊपर है और सबसे निचले स्थान पर है।
करने के लिए सूची:
- छवियों को सॉर्ट करने की अनुमति दें।
- इस समस्या को हल करें कि चित्र चित्र हमेशा परिदृश्य अभिविन्यास में प्रदर्शित होते हैं (कम से कम कच्ची छवियों के लिए। डीसी्रा रोटेशन की अनुमति देता है लेकिन स्वचालित रूप से ऐसा नहीं कर सकता है और मुझे बाहरी रूप से इसे खोजने का एक आसान तरीका नहीं दिखता है)।
- बड़ी संख्या में छवियों के लिए मेमोरी का उपयोग कम करें।
- लगभग समान चित्रों के फटने से पहले की छवियों को एक-दूसरे से सीधे तुलना करने की संभावना कम होती है।
- सॉर्टिंग थ्रेड और UI के बीच सिंक्रोनाइज़ेशन को अब निर्भर
Thread.Sleep
और पोलिंग पर नहीं बल्कि उचित सिंक्रोनाइज़ेशन विधियों का उपयोग करने के लिए बदलें ।
- 1: 1 पूर्वावलोकन (या कम से कम एक बड़ा) जोड़ें। वर्तमान में इसका उपयोग पिक्सेल स्तर पर चीजों को आंकने के लिए नहीं किया जा सकता है।
यहां 5:26 है, इसलिए मैं अब उस पर हैक करना बंद कर देता हूं।
स्रोत कोड मेरे एसवीएन रिपॉजिटरी में पाया जा सकता है और एमआईटी लाइसेंस के तहत जारी किया जाता है। मैं पैच का स्वागत करता हूं ;-)
ऊपर के स्क्रीनशॉट में चित्र मेरे अपने हैं।
1 बेशक यह उतना तुच्छ नहीं था जितना कि दूसरे मुझे विश्वास दिलाना चाहेंगे। Libraw के साथ एक लंबे संघर्ष के बाद, मैं बस dcraw मार्ग गया। सुंदर नहीं है, लेकिन कोड की न्यूनतम राशि के साथ काम करता है।
2 यह n लॉग 2 एन के क्रम में है जहां n की तुलना में चित्रों की संख्या है - इसलिए, 20 चित्रों के लिए आप 20 × 4.3 20 85 तुलना के आसपास कुछ उम्मीद कर सकते हैं - मुझे पता है, यह एक छोटी संख्या नहीं है। आपके द्वारा बताई गई 300 छवियों के लिए आपको लगभग 2400 मिलेंगे। जिस वास्तविक संख्या को मैन्युअल रूप से किया जाना है वह (a) भिन्न है (क्योंकि जटिलताएं रैखिक कारक को छोड़ती हैं) और (b) जहां तक मैंने अब तक देखा, छोटा है। विसंगतियों से बचने के लिए उपयोगकर्ता को एक ही दो छवियों (या तो आदेश) पर दो बार और कभी भी दोनों पक्षों पर एक ही छवि के साथ संकेत नहीं दिया जाएगा।