2010-03-11 19 views
6

मेरे पास एक डेटाबेस है जिसमें बाइनरी ब्लॉब के रूप में संग्रहीत चित्र डेटा होता है। दस्तावेज़ीकरण का कहना है कि डेटा एलजेडब्लूडब्ल्यू का उपयोग करके एन्कोड किया गया है। मैंने सोचा कि मैं जावा लाइब्रेरी में पाए गए ज़िप या जीजेआईपी इनपुट स्ट्रीम का उपयोग करके इसे डीकोड कर सकता हूं, लेकिन यह काम नहीं करता - मुझे एक अपवाद मिला कि डेटा का प्रारूप सही नहीं है।मैं जावा में एलजेडब्लू डिकोडिंग कैसे कर सकता हूं?

जो मैंने पढ़ा है, लाइब्रेरी DEFLATE का उपयोग करती है, जो LZW नहीं है। इसके अलावा, मैंने एलजेडब्लूडब्ल्यू एल्गोरिदम का उपयोग करने के लिए कुछ लाइसेंसिंग समस्याओं के बारे में पढ़ा है।

डेटा को डीकोड करने के लिए मैं क्या उपयोग कर सकता हूं? क्या वहां एक लाइब्रेरी है? क्या मुझे इसे खुद कार्यान्वित करना है? लाइसेंसिंग समस्याओं के बारे में क्या?

+2

एलजेडब्लूडब्ल्यू एल्गोरिदम स्वयं पेटेंट किया गया था, लेकिन पेटेंट 2003 में समाप्त हो गए थे। –

उत्तर

1

यहाँ लिंक के एक जोड़े हैं:

और वहाँ दूसरों रहे हैं।

वास्तव में यदि छवियां LZW संपीड़ित टीआईएफएफ फाइलें हैं, तो Java Advanced Imaging API स्पष्ट रूप से डीकोडिंग का समर्थन करता है (हालांकि encoding ऐसा लगता है)।

+0

वे टीआईएफएफ फाइल नहीं हैं, वे केवल छवि रास्टर डेटा हैं, और मुझे केवल डिकोडिंग में दिलचस्पी है। संसाधनों के लिए धन्यवाद! –

1

तुम भी 7-Zip JBinding जो 7zip पुस्तकालय आंतरिक रूप से उपयोग करता है के साथ की कोशिश कर सकते हैं। इसका उपयोग करना काफी आसान है।

1

मैं अपने मामले के लिए काम करने वाले एक को खोजने से पहले एक आश्चर्यजनक मात्रा में एलजेडब्लूडब्ल्यू कार्यान्वयन के माध्यम से चला गया।

UncompressedInputStreamBioJava project से मेरे लिए काम किया, जब मुझे एक .pax फ़ाइल को अनपैक करने की आवश्यकता थी।

2

मैं जानता हूँ कि सवाल पुराना है, लेकिन मैं सिर्फ LZW के बारे में एक महान संसाधन जोड़ना चाहते थे:

http://www.matthewflickinger.com/lab/whatsinagif/lzw_image_data.asp

यह GIF चित्र में LZW के उपयोग के बारे में और अधिक विशेष रूप से है, लेकिन यह संपीड़न बताते हैं और डिकंप्रेशन एल्गोरिदम बहुत अच्छी तरह से।