我正在开发的iPhone应用程序中运行代码。 基本上,代码需要加载图像和调用:
size_t bitsPerPixel = CGImageGetBitsPerPixel(imageRef);
我注意到在iPhone模拟器上,此调用返回24,设备本身返回32。
这种行为是否符合设计要求? 这是我可以控制的吗?
答案 0 :(得分:0)
我认为这取决于图像格式。
在iPhone应用程序中使用PNG时,构建设备时的部分构建过程会通过pngcrush实用程序放置PNG图像,该实用程序可优化用于iPhone图形处理器的图像。它与iPhone的图形处理器本身不处理alpha这一事实有关,因此它依赖于预乘的alpha值。
这可能是你所看到的差异。你在模拟器中没有看到它的原因是模拟器使用Mac的grahics处理器,因此可以在PNG中本地处理alpha,这意味着PNG在构建过程中不会被“压碎”。
我想......