मैं एक छवि दृश्य में दिखाए जाने वाले यूआरएल से एक छवि लोड कर रहा हूं। मानक तरीका इस प्रकार है (जहां InputStream is
यूआरएल से प्राप्त किया गया है) एक बिटमैप बनाने के लिए है:एंड्रॉइड: पूर्ण बिटमैप लोड किए बिना ImageView पर स्ट्रीमिंग छवि को ऑन-द-फ्लाई कैसे प्रस्तुत करें?
Bitmap bm = BitmapFactory.decodeStream(is);
लेकिन मैं बड़ी छवियों के साथ काम कर रहा हूँ, और मैं पहले पूरी छवि है पिक्सेल प्रदर्शित करने शुरू करना चाहते हैं बिटमैप में लोड किया गया है यानी मैं छवि की प्रगतिशील प्रतिपादन प्राप्त करना चाहता हूं (वेब ब्राउज़र में बड़ी छवियों को लोड करने के समान)। यदि छवि, उदाहरण के लिए, एक इंटरलस्ड पीएनजी है, तो यह मुझे पूर्ण छवि लोड होने की प्रतीक्षा करते समय उपयोगकर्ताओं को निम्न गुणवत्ता वाली छवि दिखाने की अनुमति देगी। असल में, मैं मैं इसे जैसे ही मैंने उन्हें पढ़ने imageView के बिटमैप करने के लिए पिक्सल रेंडर करने के लिए संशोधित कर सकते प्राप्त करने के लिए के रूप में http://www.codinghorror.com/blog/2005/12/progressive-image-rendering.html
मैं जानता हूँ कि अगर मैं एक PNG विकोडक को लागू कर सकता है, या एक खुला स्रोत कार्यान्वयन का उपयोग में दिखाया गया रेंडरिंग चाहते हैं,, लेकिन यह मेरे इरादे के लिए एक बड़े प्रयास की तरह दिखता है।
आपके पहले दृष्टिकोण के साथ मुख्य मुद्दा यह है कि छवि डेटा सीधे पिक्सेल में नहीं आता है, बल्कि इसके बजाय मैं छवि प्रारूप (उदाहरण के लिए पीएनजी) के अनुसार संपीड़ित और संगठित हूं। यहां तक कि यदि मैं अलग-अलग पैकेट से निपटता हूं, तो बड़े प्रयास को उस डेटा को प्रतिपादन से पहले पिक्सेल रंग मानों में परिवर्तित करना होगा, जो कि छवि प्रारूप के लिए एक डिकोडर लिखने की मात्रा है (यह एक ओवरकिल होगा)। मैं एक मौजूदा विधि/पुस्तकालय की तलाश में था जो आसान होगा। आपका दूसरा दृष्टिकोण, ज़ाहिर है, रास्ता आसान है। अगर मैंने कुछ और काम नहीं किया है तो मैंने इसे अपने बैकअप विकल्प के रूप में रखा है :) –