11

是否可以将 iPhone Xcode 项目设置为跳过“CompressResources”构建步骤?

具体来说,我想跳过它在我的所有 .png 文件上运行 pngcrush 的阶段,其中许多文件无法以我的应用程序可以读取的形式存在。

编辑:使用的 pngcrush 版本创建的 png 文件包含一个明确阻止解码的非标准“强制、私有”块。我已经修改了我的 png 阅读器来处理这些文件,但我仍然想要跳过这一步的每个项目的方法。pngcrush 的其他副作用之一是它不保存透明像素的颜色值,因此 alpha-ed 纹理在较小的 mip 级别显示边缘。

iphone png 格式在此处描述:https ://web.archive.org/web/20110519164905/http://modmyi.com/wiki/index.php/Iphone_PNG_images 。简而言之,

  • 跳过 CgBI 块
  • 跳过 zlib 标头
  • 交换 BGR 到 RGB 通道顺序

编辑:它似乎也预乘了 alpha,所以:

  • 除以阿尔法
4

5 回答 5

10

您可以将“IPHONE_OPTIMIZE_OPTIONS=-skip-PNGs”添加到您的项目设置中以防止 png 损坏,但要小心,您可能需要分别优化图标和 Default.png。

于 2008-10-23T08:31:20.223 回答
8

iphoneos-optimize 脚本将 PNG 文件转换为针对 iPhone 上的显示进行了优化的非标准格式。该脚本将转换在您的应用程序包中找到的任何具有 png 扩展名的文件。

我有一个类似的问题,并通过为我的文件提供扩展名 _png(即,前缀下划线)来解决它。iphoneos-optimize 忽略了它,并留下了一个常规的 PNG 文件。如果你能以这种方式处理它,它可能比使用构建脚本更安全。

于 2008-10-07T19:45:12.473 回答
5
  • 打开构建设置
  • 在“打包”下选择压缩PNG文件
  • 选择“否”
于 2011-10-21T04:40:52.700 回答
3

如果您查看构建输出,您会看到 CompressResources 步骤运行脚本/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/iphoneos-optimize。这似乎只是一个运行 pngcrush 并将 plist 编译为二进制格式的 shell 脚本。您可能会修改此脚本以不运行 pngcrush。

请注意,此线程中的某个人注意到,如果他们没有通过 pngcrush 运行他们的图标文件,它就不会出现在手机上。

有趣的是,脚本目录中的 pngcrush 版本有一个 -iphone 参数。有谁知道这是标准的还是苹果公司随其构建的产品?

于 2008-10-07T14:04:13.270 回答
1

这可能是另一个问题。在许多情况下,问题与命名有关,可以很容易地解决。

阅读: http ://cocoapi.wordpress.com/2009/03/22/iphone-images-not-appearing-in-real-iphone-this-is-why/

于 2009-03-22T15:16:26.857 回答