В моем приложении я динамически создаю большое изображение, а затем загружаю его для отображения в своем классе проводника изображений.Поскольку я не могу добавлять новые изображения в комплект во время выполнения, мне кажется, что я должен использовать imageWithContentsOfFile - однако это приводит к серьезным проблемам со скоростью в дальнейшем.
Способ работы моего проводника изображений заключается в том, чтоон принимает изображение, разбивает его на фрагменты, кэширует эти фрагменты, а затем загружает только те фрагменты в память для отображения, которое необходимо отобразить на экране.Используя кучу NSLogs, мне удалось выяснить, где все замедление.Это не в самой функции imageWithContentsOfFile, это когда я пытаюсь вызвать эту строку:
CGContextDrawImage(context_ref,
CGRectMake(0, 0, imgWidth, imgHeight), tileImage);
Это когда я записываю плитку в файл кэша.tileImage - это CGImageRef, который возвращается из CGImageCreateWithImageInRect, и именно так я получаю подмножества моего большего изображения для отдельного сохранения.
Странно то, что разделение большого изображения таким образом занимает около 45 секунд (!),но когда я разделяю изображение из пакета, используя imageNamed, а не imageWithContentsOfFile, это занимает всего около 2 секунд.
У кого-нибудь есть идеи?Заранее спасибо:)