जब एक पीएनजी एक्सकोड आईफोन प्रोजेक्ट में जोड़ा जाता है, तो संकलक इसे पीएनजीक्रश का उपयोग करके अनुकूलित करता है। डिवाइस पर एक बार, छवि का प्रतिपादन प्रदर्शन बहुत तेज़ है।बाहरी डाउनलोड किए गए पीएनजी पर आईफोन ऑप्टिमाइज़ेशन करना
मेरी समस्या यह है कि मेरा एप्लिकेशन रनटाइम पर बाहरी स्रोत से अपने पीएनजी डाउनलोड करता है (Picasa वेब एल्बम से, Google डेटा एपीआई का उपयोग करके)। दुर्भाग्यवश, इन छवियों का प्रदर्शन काफी खराब है। जब मैं छवि के शीर्ष पर कस्टम प्रतिपादन करता हूं, तो यह आंतरिक रूप से संग्रहीत समकक्षों की तुलना में 100x धीमा लगता है। मुझे दृढ़ता से संदेह है क्योंकि यह डाउनलोड की गई छवियों को अनुकूलित नहीं किया गया है।
क्या कोई जानता है कि मैं आईफोन पर रनटाइम पर बाहरी रूप से डाउनलोड किए गए पीएनजी को कैसे अनुकूलित कर सकता हूं? मैं एक कक्षा की उम्मीद कर रहा हूं जो ऐसा करता है। मैंने अपने ऐप में पीएनजीक्रश का सोर्स कोड जोड़ने पर भी विचार किया, जो कि कठोर लगता है। मैं खुद को एक सभ्य उत्तर नहीं मिला है। मैं किसी भी मदद के लिए बहुत आभारी होंगे।
धन्यवाद!
अद्यतन: कुछ लोगों ने सुझाव दिया है कि यह फ़ाइल के आकार के कारण हो सकता है, लेकिन ऐसा नहीं है। मेरे परीक्षणों के दौरान, मैंने एम्बेडेड संस्करण और बिल्कुल उसी पीएनजी के डाउनलोड किए गए संस्करण का उपयोग करने के बीच स्विच करने के लिए एक टॉगल बटन जोड़ा। केवल अंतर यह है कि एम्बेडेड को संकलन के दौरान 'pngcrush' द्वारा अनुकूलित किया गया था। यह कुछ बाइट-स्वैपिंग (आरजीबीए से बीआरजीए तक) और अल्फा के पूर्व-गुणा करता है। (http://iphonedevelopment.blogspot.com/2008/10/iphone-optimized-pngs.html)
इसके अलावा, जिस प्रदर्शन का मैं जिक्र कर रहा हूं वह डाउनलोड नहीं है, बल्कि प्रतिपादन है। मैं छवि के शीर्ष पर कस्टम पेंटिंग को अतिरंजित करता हूं (UIView की drawRect विधि को ओवरराइड करना), और यह पृष्ठभूमि बहुत ही चंचल है जब पृष्ठभूमि डाउनलोड किया गया संस्करण है, और यह बहुत चिकनी है जब यह एम्बेडेड (और इसलिए अनुकूलित) संस्करण है। फिर, यह बिल्कुल वही फाइल है। एकमात्र अंतर ऑप्टिमाइज़ेशन है, जिसे मैं उम्मीद कर रहा हूं कि मैं इसे डाउनलोड करने के बाद डिवाइस पर रनटाइम पर छवि पर प्रदर्शन कर सकता हूं।
हर किसी की मदद के लिए धन्यवाद!
मुझे नहीं लगता है, जबकि (पहली बार के बाद कहते हैं,) प्रतिपादन आप मूल पीएनजी डेटा को छू जाना चाहिए करने के लिए सामान्य PNG फ़ाइल, इसलिए मैं वास्तव में नहीं है देखें कि यह एक बड़ा अंतर कैसे बना सकता है। शायद यह छवि आकार है, क्योंकि एंड्रयू ग्रांट सुझाव देता है? –
यह ध्यान रखना महत्वपूर्ण है कि पीएनजीक्रश-समतुल्य प्रक्रिया को अभी भी चलाने की आवश्यकता होगी, हालांकि केवल एक बार, इसलिए उस बिंदु पर प्रदर्शन प्रभाव होगा –