#objective-c #ios
#objective-c #iOS
Вопрос:
В моем приложении более 1000 фотографий и 50 галерей. Это похоже на приложение для фотографий iphone. В списке предварительного просмотра галереи у меня проблема с производительностью. В профиле я увидел, что [sourceImage drawInRect:thumbnailRect] занимает 96% времени. Каков наилучший способ исправить эту проблему?
Дублируйте изображения небольшого размера, которые я сделал. Возможно, есть другое решение?
Комментарии:
1. Фотографии меняются, или это те же 1000 фотографий для каждого пользователя?
2. Да, 1000 фотографий для каждого пользователя.
Ответ №1:
Лучший способ — создать уменьшенные изображения для каждого файла изображения и сохранить их как thumb_orginalimagefilename.png.
Комментарии:
1. У меня есть древовидные типы галерей. В каждом типе я использую разный размер (65×65, 73×73, 280×320). Решение с уменьшенными изображениями хорошее, но мне нужно дублировать изображение три раза. Я подумал, что существует более быстрое решение для изменения размера изображения, чем drawInRect.
2. Я бы использовал 65×65 для 65×65 и 73×73. Потому что никто не видит разницы. А для формата 280×320 вы можете сначала загрузить размер 65×65 и заменить его, если загружено большое изображение.
Ответ №2:
Вы можете пакетно редактировать изображения во многих настольных издательских программах.
Photoshop или Fireworks. В Picasa вы можете просто выбрать множество изображений, например, целую папку, а затем экспортировать в файл и выбрать выходной размер
Ответ №3:
Создайте три больших изображения, которые содержат все большие пальцы в каждой галерее, и загрузите их в один UIScrollView с полупрозрачными кнопками UIImageButtons над местами, где большие пальцы отображаются на изображении.
Это может оказаться быстрее, поскольку вы загружаете только одно изображение в галерею, но вам придется попробовать, чтобы узнать. Я делал это раньше, поскольку это помогало уменьшить размер моего приложения.