11

「CompressResources」ビルドステップをスキップするように iPhone Xcode プロジェクトを設定することは可能ですか?

具体的には、すべての .png ファイルで pngcrush を実行する段階をスキップしたいと考えています。その多くは、アプリが読み取れる形式での経験を生き残ることはできません。

編集:使用されている pngcrush のバージョンは、デコードを明示的に防止する非標準の「必須のプライベート」チャンクを含む png ファイルを作成します。これらのファイルを処理するように png リーダーを変更しましたが、この手順をスキップするプロジェクトごとの方法が必要です。pngcrush のその他の副作用の 1 つは、透過ピクセルのカラー値が保存されないことです。そのため、アルファ化されたテクスチャは、小さなミップ レベルでフリンジを示します。

iPhone の png 形式については、https: //web.archive.org/web/20110519164905/http ://modmyi.com/wiki/index.php/Iphone_PNG_images で説明されています。要するに、

  • CgBI チャンクをスキップする
  • zlib ヘッダーをスキップする
  • BGR を RGB チャネル順序に入れ替えます

編集:アルファも事前に乗算しているように見えるので、次のようになります。

  • アルファで割る
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 をバイナリ形式にコンパイルする単なるシェル スクリプトのようです。このスクリプトを変更して、pngcrush を実行しないようにすることもできます。

このスレッドの誰かが、pngcrush を介してアイコン ファイルを実行しなかった場合、電話に表示されないことに気付いたことに注意してください。

興味深いことに、スクリプトのディレクトリにある pngcrush のバージョンには -iphone 引数があります。これが標準なのか、それとも Apple がそのビルドで出荷したばかりなのか、誰か知っていますか?

于 2008-10-07T14:04:13.270 に答える