Когда PNG добавляется в проект iPhone XCode, компилятор оптимизирует его с помощью pngcrush. На устройстве скорость рендеринга изображения очень высокая.
Моя проблема заключается в том, что мое приложение загружает свои PNG-файлы из внешнего источника во время выполнения (из веб-альбомов Picasa, используя API данных Google). К сожалению, производительность этих изображений довольно плохая. Когда я делаю пользовательский рендеринг поверх изображения, он кажется в 100 раз медленнее, чем его внутренне сохраненные аналоги. Я сильно подозреваю, что это потому, что загруженные изображения не были оптимизированы.
Кто-нибудь знает, как я могу оптимизировать загруженный извне PNG во время выполнения на iPhone? Я надеюсь на класс, который делает это. Я даже подумал о добавлении исходного кода pngcrush в мое приложение, что выглядит радикально. Я не смог найти достойного ответа сам. Буду очень признателен за любую помощь.
Спасибо!
Обновление:
Некоторые люди предположили, что это может быть связано с размером файла, но это не так. Во время моих тестов я добавил кнопку переключения, чтобы переключаться между использованием встроенной версии и загруженной версии точно такого же PNG. Разница лишь в том, что во время компиляции встроенный был оптимизирован с помощью pngcrush. Это делает некоторую замену байтов (от RGBA до BRGA) и предварительное умножение альфа. (http://iphonedevelopment.blogspot.com/2008/10/iphone-optimized-pngs.html)
Кроме того, речь идет не о загрузке, а о рендеринге. Я накладываю пользовательское рисование поверх изображения (переопределяя метод drawRect в UIView), и оно очень изменчиво, когда фон является загруженной версией, и очень плавным, когда это встроенная (и поэтому оптимизированная) версия. Опять же, это точно такой же файл. Единственное отличие - оптимизация, которую я надеюсь выполнить на образе во время выполнения, на устройстве после его загрузки.
Еще раз спасибо за помощь всем!