मैं CATiledLayer
के लिए टाइल्स का एक गुच्छा उत्पन्न कर रहा हूं। आईफोन 4 एस पर विस्तार के 4 स्तरों के साथ 256 x 256 पर 120 टाइल्स उत्पन्न करने में लगभग 11 सेकंड लगते हैं। छवि स्वयं 2048 x 2048 के भीतर फिट बैठती है।UIImagePNGRepresentation की तुलना में एक पीएनजी को तेज़ी से एन्कोड करने का कोई तरीका?
मेरी बाधा UIImagePNGRepresentation
है। प्रत्येक 256 x 256 छवि उत्पन्न करने में लगभग 0.10-0.15 सेकंड लगते हैं।
मैंने विभिन्न पृष्ठभूमि कतारों पर एकाधिक टाइल्स जेनरेट करने का प्रयास किया है, लेकिन यह केवल 9-10 सेकेंड तक इसे घटा देता है। हालांकि इस छोटे PNG फ़ाइलें (! जीत), इसके बारे में 13 सेकंड, 2 सेकंड पहले की तुलना में अधिक लेता है पैदा करता है
- (void)writeCGImage:(CGImageRef)image toURL:(NSURL*)url andOptions:(CFDictionaryRef) options
{
CGImageDestinationRef myImageDest = CGImageDestinationCreateWithURL((__bridge CFURLRef)url, (__bridge CFStringRef)@"public.png", 1, nil);
CGImageDestinationAddImage(myImageDest, image, options);
CGImageDestinationFinalize(myImageDest);
CFRelease(myImageDest);
}
:
मैं भी इस तरह के कोड के साथ ImageIO ढांचे का उपयोग कर की कोशिश की है।
क्या CGImage
से पीएनजी छवि को एन्कोड करने का कोई तरीका है? शायद NEON
एआरएम एक्सटेंशन (आईफोन 3 जीएस +) जैसे libjpeg-turbo का उपयोग करने वाली लाइब्रेरी का उपयोग करता है?
क्या संभवत: पीएनजी से बेहतर टाइल बचाने के लिए बेहतर प्रारूप है जो बहुत अधिक जगह नहीं लेता है?
एकमात्र व्यवहार्य विकल्प मैं टाइल आकार को 512 x 512 तक बढ़ाने के लिए सक्षम हूं। यह एन्कोडिंग समय को आधे से घटा देता है। यकीन नहीं है कि मेरे स्क्रॉल व्यू के साथ क्या होगा। ऐप आईपैड 2+ के लिए है, और केवल आईओएस 6 का समर्थन करता है (बेसलाइन के रूप में आईफोन 4 एस का उपयोग करके)।