PhotoSlider - फोटो ब्लॉकेज पार्स करने के लिए GPL उपयोगिता

PhotoSlider का लक्ष्य

मैंने कई फोटो ब्लॉग पढ़े जिनमें कभी-कभी "फोटो पैक / सत्र / रिपोर्ट" के माध्यम से पर्ची होती है। साथ ही, मित्र अपनी तस्वीरों को गीगाबाइट में ले जाते हैं। जैसे ही कुछ तस्वीरें एकत्र की जाती हैं (प्रत्येक 10-20 के हजारों), मैं उनके माध्यम से देखता हूं कि उनमें से चयनित 0.001% मेरे वॉलपेपर पर हैं।
कैमरे हर किसी के लिए बेहतर हो रहे हैं, फ़ोटो अधिक से अधिक वजन करते हैं, जो उनके लोडिंग की गति को प्रभावित नहीं कर सकते हैं। यह कैसे प्रभावी ढंग से रेक करने के लिए एक समस्या थी। लगभग सभी तस्वीरें एक ही दृश्य के बाद हटा दी जाती हैं, वॉलपेपर के लिए फ़ोल्डर में पसंदीदा की एक छोटी संख्या को स्थानांतरित कर दिया जाता है।
प्रारंभ में पिकासा या FSViewer का उपयोग किया गया था। लेकिन दोनों, किसी कारण से, खुश नहीं थे।

थोड़ी पीड़ा के बाद, मैंने अपनी उपयोगिता लिखना शुरू कर दिया, जो कि फोटोस्लाइडर बन गया।
कटौती, कार्यान्वयन और प्रबंधन विवरण के तहत।

कैसे उपयोग करें

कोई इंस्टॉलर नहीं है, यह कंसोल से लॉन्च किया गया है। केवल 2 मापदंडों को समझता है:

वर्तमान फ़ोल्डर (सबफ़ोल्डर्स के साथ) को पुन: स्कैन करता है, हमेशा पूर्ण स्क्रीन तक फैलता है। यदि स्क्रीन पर कई तस्वीरें प्रदर्शित करना संभव है (उदाहरण के लिए, यदि 2 पैनोरमा स्क्रीन पर एक दूसरे के साथ हस्तक्षेप किए बिना लंबवत फिट होते हैं), तो कई दिखाए जाएंगे।
निम्नलिखित का प्रबंधन (अनावश्यक रूप से कॉन्फ़िगर नहीं किया गया है, कम से कम मेरे लिए)।

कैसे तकनीकी रूप से लागू किया गया

तस्वीरें एक अलग स्ट्रीम में अपलोड की जाती हैं। स्क्रीन पर प्रदर्शित होने के लिए समय स्केलिंग बर्बाद न करने के लिए, सभी तस्वीरों को उसी (चयनित) स्ट्रीम में स्क्रीन रिज़ॉल्यूशन के लिए स्केल किया जाता है (संरक्षित अनुपात के साथ)।
एक अलग स्ट्रीम अगली स्क्रीन के लिए तस्वीरों के संयोजन से संबंधित है। जब कोई कमांड आता है, तो नई तस्वीरों को पहले संयुक्त स्क्रीन से दिखाया जाता है (ताकि उपयोगकर्ता उन्हें कम से कम संभव देरी से देखता है) और उसके बाद ही पुरानी तस्वीरें जारी / हटा दी जाती हैं।
सभी मेमोरी को बंद न करने के लिए, कतार में लटके फ़ोटो की संख्या पर एक सीमा होती है (अब यह एक अमूर्त प्रतिबंध है: सभी फ़ोटो का योग (चौड़ाई * ऊंचाई * 4) <1024 * 1024 * 1024) मैं उपलब्ध रैम के आधार पर एक सीमा के लिए सब कुछ फिर से करना चाहता हूं, लेकिन अब के लिए और भी दिलचस्प बातें हैं)।
ऐसा लगता है कि यह अन्य दर्शकों (ऊपर वर्णित उद्देश्यों के लिए) की तुलना में बहुत जीविका काम करता है, लेकिन अधिक गति प्राप्त करने की उम्मीद है। ऐसा लगता है कि कहीं न कहीं एक अड़चन है, लेकिन अभी तक एक प्रोफाइलर की कमी के कारण प्रोफाइल नहीं बना है।
ध्यान से, लेकिन नहीं पकड़ा दोष:

पिछले कुछ कमिट्स ने सभी कार्यक्षमता की जांच नहीं की, शायद कहीं और कुछ सामने आएगा।
यह सब .NET 3.5 के तहत C # में लिखा गया है। यह अक्सर टुकड़ों में लिखा जाता था और जल्दी में, आवेदन वास्तुकला बहुत गड़बड़ है। मुझे उम्मीद है कि मैं किसी तरह एक साथ मिलूंगा और कोड को सामान्य पठनीयता में लाऊंगा। अधिकांश भाग के लिए, कोई टिप्पणी नहीं है, एक ही कारण के लिए (+ शुरू में इसे आगे विकसित करने की योजना नहीं थी "एक या दो बार आवेदन का उपयोग करने के लिए")। केवल विंडोज के तहत परीक्षण किया गया। मैंने अभी तक मोनो के तहत कुछ भी नहीं लिखा है, चाहे वह संकलित हो या नहीं - मुझे नहीं पता। हालांकि मैं उबंटू में स्विच करने के लिए अधिक से अधिक आकर्षित हूं, शायद भविष्य में मैं इसे मोनो के तहत रीमेक करूंगा।
GPL3 के तहत Google कोड में स्रोत अपलोड किए गए हैं।
मुझे उम्मीद है कि यह उपयोगिता मेरे अलावा किसी और के लिए उपयोगी है।


Source: https://habr.com/ru/post/In141410/


All Articles