模拟器和实际设备上的iPhone图像 - 不同bitsPerPixel值?

时间:2010-03-18 12:12:01

标签: iphone image ios-simulator

我正在开发的iPhone应用程序中运行代码。 基本上,代码需要加载图像和调用:

size_t bitsPerPixel             = CGImageGetBitsPerPixel(imageRef);

我注意到在iPhone模拟器上,此调用返回24,设备本身返回32。

这种行为是否符合设计要求? 这是我可以控制的吗?

1 个答案:

答案 0 :(得分:0)

我认为这取决于图像格式。

在iPhone应用程序中使用PNG时,构建设备时的部分构建过程会通过pngcrush实用程序放置PNG图像,该实用程序可优化用于iPhone图形处理器的图像。它与iPhone的图形处理器本身不处理alpha这一事实有关,因此它依赖于预乘的alpha值。

这可能是你所看到的差异。你在模拟器中没有看到它的原因是模拟器使用Mac的grahics处理器,因此可以在PNG中本地处理alpha,这意味着PNG在构建过程中不会被“压碎”。

我想......