Любой способ кодировать PNG быстрее, чем UIImagePNGRepresentation?
м генерирует кучу плиток дляCATiledLayer
, На iPhone 4S требуется около 11 секунд, чтобы сгенерировать 120 плиток с разрешением 256 x 256 и 4 уровнями детализации. Само изображение умещается в пределах 2048 х 2048.
Мое узкое местоUIImagePNGRepresentation
, Генерация каждого изображения 256 x 256 занимает около 0,10-0,15 секунды.
попытался сгенерировать несколько плиток в другой фоновой очереди 'с, но это только сокращает его примерно до 9-10 секунд.
Мы также пытались использовать каркас ImageIO с таким кодом:
- (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);
}
В то время как при этом создаются файлы PNG меньшего размера (победа!), Это занимает около 13 секунд, на 2 секунды больше, чем раньше.
Есть ли способ кодировать изображение PNG изCGImage
Быстрее? Возможно, библиотека, которая используетNEON
ARM расширение (iPhone 3GS +), какlibjpeg-турбо делает?
Возможно, есть лучший формат, чем PNG, для сохранения тайлов, которые незанимают много места?
Единственный жизнеспособный вариант, который яМы смогли увеличить размер плитки до 512 x 512. Это сокращает время кодирования вдвое. Не уверен, что это будет делать с моим видом прокрутки, хотя. Приложение предназначено для iPad 2+ и поддерживает только iOS 6 (в качестве базовой линии используется iPhone 4S).