我目前正在研究在我们的 iOS 软件中使用 Google 的 WebP 图像格式的可能性。
我发现使用 Google 的 C 库根据需要将 WebP 解码为 RGBA8888 并不难。
但是,我想创建一个在 API 和性能方面与 UIImage 相当的实现。
Q1。是否可以在 iOS 中开发图像解码器,以便原生 imageWithData 和其他 API 读取新格式?
Q2。如果不是,UIImageView(和其他框架提供的控件)使用什么 API 来绘制 UIImage?它是公共的(例如drawInRect/drawAtPoint)还是内部的?
我可以从 UIImage 继承,覆盖一些方法(例如 +imageWithContentsOfFile、+imageWithData、+imageNamed、-drawInRect、-drawAtPoint),并让我的 WPImage 对象在 SDK 提供的 API 中表现良好吗?
Q3。如果我假设的 WPImage 类的每个实例都订阅 UIApplicationDidReceiveMemoryWarningNotification (以刷新 RGBA 图像缓冲区,将更小的原始 WebP 数据留在 RAM 中),它不会对性能造成太大影响吗?
我们正在开发的软件可能很容易在 RAM 中有数百个不同的图像。