В настоящее время я изучаю возможность использования формата изображений Google WebP в нашем программном обеспечении для iOS.
Я обнаружил, что нетрудно декодировать WebP в RGBA8888 по мере необходимости, используя C-библиотеку Google.
Однако я хотел бы создать реализацию, сравнимую с UIImage с точки зрения как API, так и производительности.
Q1.Можно ли в iOS разработать декодер изображений, чтобы нативные imageWithData и другие API-интерфейсы читали новый формат?
Q2.Если нет, какой API использует UIImageView (и другие элементы управления, предоставляемые платформой) для рисования UIImage?Это общедоступный (например, drawInRect / drawAtPoint) или внутренний?Могу ли я наследовать от UIImage, переопределить несколько методов (таких как + imageWithContentsOfFile, + imageWithData, + imageNamed, - drawInRect, -drawAtPoint), и чтобы мои объекты WPImage работали хорошо с API, предоставленными SDK?
Q3.Если каждый экземпляр моего гипотетического класса WPImage будет подписываться на UIApplicationDidReceiveMemoryWarningNotification (для очистки буфера изображения RGBA, оставляя намного меньше исходных данных WebP в оперативной памяти), не сильно ли это повредит производительности?Программное обеспечение, которое мы разрабатываем, может легко иметь сотни различных образов в оперативной памяти.
Заранее спасибо!