PhotoSlider का लक्ष्य
मैंने कई फोटो ब्लॉग पढ़े जिनमें कभी-कभी "फोटो पैक / सत्र / रिपोर्ट" के माध्यम से पर्ची होती है। साथ ही, मित्र अपनी तस्वीरों को गीगाबाइट में ले जाते हैं। जैसे ही कुछ तस्वीरें एकत्र की जाती हैं (प्रत्येक 10-20 के हजारों), मैं उनके माध्यम से देखता हूं कि उनमें से चयनित 0.001% मेरे वॉलपेपर पर हैं।
कैमरे हर किसी के लिए बेहतर हो रहे हैं, फ़ोटो अधिक से अधिक वजन करते हैं, जो उनके लोडिंग की गति को प्रभावित नहीं कर सकते हैं। यह कैसे प्रभावी ढंग से रेक करने के लिए एक समस्या थी। लगभग सभी तस्वीरें एक ही दृश्य के बाद हटा दी जाती हैं, वॉलपेपर के लिए फ़ोल्डर में पसंदीदा की एक छोटी संख्या को स्थानांतरित कर दिया जाता है।
प्रारंभ में पिकासा या FSViewer का उपयोग किया गया था। लेकिन दोनों, किसी कारण से, खुश नहीं थे।
- पिकासा पूरी स्क्रीन में फोटो नहीं दिखाना चाहता, एक बटन दबाकर नहीं हटाया जा सकता (प्रत्येक फोटो के लिए यह पुष्टि के लिए पूछता है), अगली फोटो पर स्विच करना धीमा है (जब ~ 24 एमपी देखते हैं कि लैपटॉप पर फोटो बहुत अप्रिय है);
- बेहतर हटाने के साथ, FSViewer भी गति में अधिक भिन्न नहीं था, लेकिन फिर भी धीमा है। इसके अलावा, वह अभी भी फ़ाइल नामों में यूनिकोड को नहीं समझता है (उसने लंबे समय से डेवलपर्स को समर्थन जोड़ने के लिए कहा है)।
थोड़ी पीड़ा के बाद, मैंने अपनी उपयोगिता लिखना शुरू कर दिया, जो कि फोटोस्लाइडर बन गया।
कटौती, कार्यान्वयन और प्रबंधन विवरण के तहत।
कैसे उपयोग करें
कोई इंस्टॉलर नहीं है, यह कंसोल से लॉन्च किया गया है। केवल 2 मापदंडों को समझता है:
- के रूप में - सभी मॉनिटर पर चलाते हैं
- --मोवपथ [पथ] - जहां पसंदीदा स्थानांतरित करने के लिए (डिफ़ॉल्ट रूप से _good डैडी बनाया गया है)।
वर्तमान फ़ोल्डर (सबफ़ोल्डर्स के साथ) को पुन: स्कैन करता है, हमेशा पूर्ण स्क्रीन तक फैलता है। यदि स्क्रीन पर कई तस्वीरें प्रदर्शित करना संभव है (उदाहरण के लिए, यदि 2 पैनोरमा स्क्रीन पर एक दूसरे के साथ हस्तक्षेप किए बिना लंबवत फिट होते हैं), तो कई दिखाए जाएंगे।
निम्नलिखित का प्रबंधन (अनावश्यक रूप से कॉन्फ़िगर नहीं किया गया है, कम से कम मेरे लिए)।
- बच - निकास;
- अंतरिक्ष - वर्तमान के साथ कुछ भी किए बिना फोटो के अगले हिस्से को दिखाएं;
- डेल - सभी को हटा दें। सावधानी, बिना किसी अनुरोध के हटा दी जाती है और टोकरी को पिछले कर दिया जाता है!
- m - सभी फ़ोटो को पसंदीदा में स्थानांतरित करें;
- ऊपर / नीचे तीर - "पंक्ति जोड़ें / निकालें"। यानी पंक्तियों की संख्या से विभाजित फोटो का अधिकतम रिज़ॉल्यूशन। बैचों में देखने के लिए सुविधाजनक है जब बहुत सारे निर्बाध फोटो हैं;
- बाएँ / दाएँ तीर - वही, केवल पंक्तियों के साथ;
- माउस के साथ क्लिक करके आप "फुल-स्क्रीन" फोटो देख सकते हैं, यदि पंक्तियों / कॉलमों की संख्या 0, बाकी फोटो से अलग। दाएं बटन में बटन को डुप्लिकेट करते हुए एक मेनू है
कैसे तकनीकी रूप से लागू किया गया
तस्वीरें एक अलग स्ट्रीम में अपलोड की जाती हैं। स्क्रीन पर प्रदर्शित होने के लिए समय स्केलिंग बर्बाद न करने के लिए, सभी तस्वीरों को उसी (चयनित) स्ट्रीम में स्क्रीन रिज़ॉल्यूशन के लिए स्केल किया जाता है (संरक्षित अनुपात के साथ)।
एक अलग स्ट्रीम अगली स्क्रीन के लिए तस्वीरों के संयोजन से संबंधित है। जब कोई कमांड आता है, तो नई तस्वीरों को पहले संयुक्त स्क्रीन से दिखाया जाता है (ताकि उपयोगकर्ता उन्हें कम से कम संभव देरी से देखता है) और उसके बाद ही पुरानी तस्वीरें जारी / हटा दी जाती हैं।
सभी मेमोरी को बंद न करने के लिए, कतार में लटके फ़ोटो की संख्या पर एक सीमा होती है (अब यह एक अमूर्त प्रतिबंध है: सभी फ़ोटो का योग (चौड़ाई * ऊंचाई * 4) <1024 * 1024 * 1024) मैं उपलब्ध रैम के आधार पर एक सीमा के लिए सब कुछ फिर से करना चाहता हूं, लेकिन अब के लिए और भी दिलचस्प बातें हैं)।
ऐसा लगता है कि यह अन्य दर्शकों (ऊपर वर्णित उद्देश्यों के लिए) की तुलना में बहुत जीविका काम करता है, लेकिन अधिक गति प्राप्त करने की उम्मीद है। ऐसा लगता है कि कहीं न कहीं एक अड़चन है, लेकिन अभी तक एक प्रोफाइलर की कमी के कारण प्रोफाइल नहीं बना है।
ध्यान से, लेकिन नहीं पकड़ा दोष:
- कुछ तस्वीरें लोड होने से इंकार करती हैं, हालांकि वही FSViewer समस्याओं के बिना उन्हें खोलता है। .NET फ्रेमवर्क द्वारा उपयोग किए जाने वाले विंडोज़ फ़ंक्शंस के अंदर कहीं समस्या यह प्रतीत होती है;
- कभी-कभी कुछ फ़ाइलों को हटाना संभव नहीं होता है। डिलीट क्यों नहीं कर सकता गूगल;
- कभी-कभी गलत स्केलिंग प्राप्त की जाती है यदि अक्सर पंक्तियों / स्तंभों की संख्या में बदलाव के साथ खेला जाता है;
पिछले कुछ कमिट्स ने सभी कार्यक्षमता की जांच नहीं की, शायद कहीं और कुछ सामने आएगा।
यह सब .NET 3.5 के तहत C # में लिखा गया है। यह अक्सर टुकड़ों में लिखा जाता था और जल्दी में, आवेदन वास्तुकला बहुत गड़बड़ है। मुझे उम्मीद है कि मैं किसी तरह एक साथ मिलूंगा और कोड को सामान्य पठनीयता में लाऊंगा। अधिकांश भाग के लिए, कोई टिप्पणी नहीं है, एक ही कारण के लिए (+ शुरू में इसे आगे विकसित करने की योजना नहीं थी "एक या दो बार आवेदन का उपयोग करने के लिए")। केवल विंडोज के तहत परीक्षण किया गया। मैंने अभी तक मोनो के तहत कुछ भी नहीं लिखा है, चाहे वह संकलित हो या नहीं - मुझे नहीं पता। हालांकि मैं उबंटू में स्विच करने के लिए अधिक से अधिक आकर्षित हूं, शायद भविष्य में मैं इसे मोनो के तहत रीमेक करूंगा।
GPL3 के तहत
Google कोड में स्रोत अपलोड किए गए हैं।
मुझे उम्मीद है कि यह उपयोगिता मेरे अलावा किसी और के लिए उपयोगी है।