2009-10-29 15 views
6

मेरे पास धीमा कनेक्शन है कि मुझे एक पीएनजी छवि (एक बाइट स्ट्रीम के रूप में) भेजने की आवश्यकता है और छवि को तत्काल प्रदर्शित किया जाना चाहिए। मेरे पास एक सी # WinForms ऐप बाइट स्वीकार कर रहा है [], इसे एक मेमोरी स्ट्रीम में लोड कर रहा है, और एक सिस्टम बना रहा है। ड्रॉइंग। इमेज/बिटमैप ऑब्जेक्ट।सभी डेटा प्राप्त होने से पहले मैं एक अंतःस्थापित पीएनजी कैसे दिखाना शुरू कर सकता हूं?

मैं क्या करना चाहता हूं एक सुपर कम रिज़ॉल्यूशन छवि नीचे भेजना है, और फिर इसे क्रमशः अपडेट करें ताकि डेटा प्राप्त होने के बाद यह स्पष्ट हो जाए। ऐसा लगता है कि पीएनजी इंटरलस्ड छवियों का समर्थन करता है जो मैं चाहता हूं।

क्या सभी डेटा प्राप्त होने से पहले पीएनजी दिखाना शुरू करना संभव है और इसके बाकी हिस्सों में वृद्धि के रूप में इसे स्पष्ट रूप से स्पष्ट कर दिया गया है? मैं यह कैसे कर सकता हूँ?

उत्तर

2

आपको बाइट्स को इस तरह से वितरित करना होगा कि वे Adam7 algorithm के अनुरूप हैं। संभवतः एक तृतीय-पक्षीय लाइब्रेरी को गुगल किया जा सकता है जो बाइट को इस तरह से कड़ी मेहनत करने के लिए प्रदान करता है।

यहां यह visual example है जो यह करेगा।

संपादित करें: LibPNG for Windows might be a start। बेशक इसके डीएलएल को आपके .NET प्रोग्राम को अप्रबंधित कोड और गैर-एमएसआईएल असेंबली के साथ बातचीत करने की आवश्यकता होगी, और यह एक और कहानी है जो मुझे यकीन है कि स्टैक ओवरफ्लो पर कहीं और पोस्ट किया गया है - या शायद आप इसके लिए एक और सवाल बना सकते हैं। लिबपएनजी एक ओपन सोर्स प्रोजेक्ट है, इसलिए इसके स्रोत कोड को देखकर एडम 7 एल्गोरिदम पर अंतर्दृष्टि प्रदान की जा सकती है जिसे सी #/नेट में रिकोड किया जा सकता है।

+0

धन्यवाद, मैं एक और * स्वचालित * समाधान की उम्मीद कर रहा था, मुझे लगता है कि कोई भी नहीं है :( – NotDan

+0

मुझे भी लगता है कि यह अजीब लगता है कि कोई कार्यान्वयन नहीं है जो आसानी से googleable है। शायद आप पहले होंगे। –

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