2011-11-25 16 views
6

मैं वर्तमान में सी # ओपन सोर्स फोटो मोज़ेक सॉफ्टवेयर (Sourceforge Link) पर काम कर रहा हूं। यह सॉफ्टवेयर एक बड़ी छवि में बड़ी मात्रा में छोटी तस्वीरें (टाइल्स) को एक साथ जोड़ता है।सी #: भागों में जेपीजी को सहेजना

चूंकि अंतिम छवि आकार आमतौर पर 20k पीएक्स टाइम्स 15k पीएक्स के क्रम में होता है, मैं केवल स्मृति में टाइल्स को व्यवस्थित करने का तरीका सहेज रहा हूं। अंतिम छवि बनाने के लिए, मैं इसे भागों में बना रहा हूं, अर्थात् 8 लाइनों के बैंड में (किसी भी अन्य नंबर से भी)।

बीएमपीएस के मामले में, यह डेटा तब आसानी से एक बीएमपी हेडर लिखकर और बाद में एआरजीबी डेटा को इस फ़ाइल में जोड़कर खंड द्वारा चुंक बचा सकता है।

लेकिन परिणामस्वरूप बीएमपीएस आगे संभालने के लिए बहुत अधिक हैं (उदाहरण के लिए उन्हें कुछ पोस्टर प्रिंटिंग कंपनी को देना)। इसलिए मैं इन बड़ी छवियों को अपने एचडीडी पर jpgs के रूप में सहेजना चाहूंगा।

समस्या अब है, क्योंकि जेपीजी संपीड़ित हैं, इसलिए भाग में डेटा लिखना बहुत मुश्किल लगता है (सामान्य बिटमैप.व्यू() फ़ंक्शन पूर्ण छवि को स्मृति में पहले लोड करेगा और इसलिए लागू नहीं होगा), शुद्ध लिखने के बाद से , असम्पीडित आरजीबी डेटा ऐसा नहीं करेगा।

पार्टी में जेपीजी लिखने की मूल कार्यक्षमता मौजूद होनी चाहिए, क्योंकि जहां तक ​​मुझे पता है कि जेपीजी का संपीड़न एल्गोरिदम भाग या 8x8 पीएक्स के साथ काम करता है।

मैंने इस समस्या के समाधान खोजने के लिए कई छवि पुस्तकालयों (फ्री इमेज, ग्राफिक्स मैगिक, लिबटीफ.नेट) में देखा, लेकिन कोई भी नहीं मिला। लिबटीफ मूल रूप से वांछित कार्यक्षमता है, लेकिन केवल टिफ छवि प्रारूप के लिए।

आपकी मदद के लिए बहुत बहुत धन्यवाद! अधिकतम

उत्तर

1

चूंकि आपने OpenJPEG library का उल्लेख नहीं किया है, मैंने सोचा था कि आप इसे याद कर सकते हैं।

http://www.openjpeg.org/

बेशक आप इसे चारों ओर कुछ रैपर की आवश्यकता होगी, लेकिन मुझे लगता है कि आप प्राप्त कर सकते हैं क्या आपको लगता है कि लाइब्रेरी का उपयोग करना चाहते हैं। लेकिन यह सबसे आसान समाधान नहीं है, मुझे पता है। यदि कोई और बेहतर, आसान सुझाव के साथ आता है, तो आप इस पुस्तकालय को छोड़ सकते हैं।

संपादित करें: यह बहुत अपूर्ण दिखता है लेकिन यह सी # कोड के बाद सहायक हो सकता है। http://www.codeproject.com/KB/graphics/SimpleJpeg.aspx

+0

धन्यवाद, मैं वास्तव में इसे याद किया। इसे जांच लेंगे! – mgulde

+0

हम्म, ओपनजेपीईजी मूल रूप से केवल जेपीईजी के लिए जेपीईजी 2 के रूपांतरण और पीठ के लिए है। सरल एन्कोडर एक अच्छा समाधान है, भले ही यह शक्तिशाली जटिल दिखता हो;) – mgulde

+0

हम्म, _does_ openjpeg लाइब्रेरी समर्थन incremental I/O? मैंने इसे थोड़ा सा देखा (हालांकि दस्तावेज़ बहुत कम हैं), और सभी छवि I/O इंटरफेस केवल पूर्ण छवियों पर ही काम करने लगते थे ... क्या आप एपीआई कॉल को इंगित कर सकते हैं जो एक वृद्धिशील I/O करने के लिए उपयोग करता है openjpeg पुस्तकालय ...? धन्यवाद! – snogglethorpe

संबंधित मुद्दे