Apple の iOS SDK は、修正されたバージョンの pngcrush を使用して、iOS バンドル内の png ファイルを変換します。それらのバージョンは変更を元に戻すこともできます (「-revert-iphone-optimizations」スイッチを使用) が、元のバージョンではできません。
Linux で実行して iPhone の最適化を元に戻すツールはありますか?
ありがとう。
次のいずれかを使用することを選択できます。
VirtualBoxを使用して、Linux内にHackintoshをインストールします。その中にXcodeをインストールしてから、このようなことをしてください
$ /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -dir uncrushed -revert-iphone-optimizations -q *.png
これは、apple からの変更された pngcrush を使用して、その最適化を元に戻します。これは、すべての粉砕された png で機能すると思います。より正確なコマンドxcrunについては、これを参照してください
このブログからiPIN.pyをダウンロードし、次のように実行します。
$ python ipin.py
これにより、実際のディレクトリとそのサブディレクトリからすべてのファイルが削除されます。私の経験から、すでにクラッシュしていないpngが破損することはありません。ここから、ipin.py がすべての Apple png を最適化解除していないことがわかります。
これ ( ipin.py ) は、複数の IDAT チャンクを処理できず、Adam7 インターレース画像では機能せず、事前に乗算されたアルファを修正しません。
特定のgnome バイナリ ツールを使用します。これには、いくつかの低レベルの手順が必要です。
$ git clone https://github.com/hadess/fixpng-thumbnailer.git
$ cd fixpng-thumbnailer
$ ./autogen.sh
$ make
$ sudo make install
その後、次のように機能する新しいコマンドgnome-fixpng-thumbnailerを利用できます
$ gnome-fixpng-thumbnailer [入力ファイル] [出力ファイル]
このコマンドは、同じ png に対して 2 回呼び出されると png が破損するため、注意してください。
私はこのように使用します:
$ for file in *.png; do echo " $file";gnome-fixpng-thumbnailer $file $file; done
ファイル名をエコーした理由はお分かりでしょう。これは、このコマンドが暗黙のうちに失敗する可能性があり (失敗した場合、0 以外の $? が表示されない)、「ZLib エラー! -3」メッセージだけが手がかりになるためです。おかしなことに、 ipin.pyがこれらのファイルをアンクラッシュすることがわかるので、これは簡単な解決策です。
pngdefryに関するさらに別のツールについては、これをお読みください。これは、このすべてのものに関する非常に貴重な情報を提供します-そのソースも含めますが、私は自分で試したことはありません.
私の希望は、pngcrushがこれらの機能を吸収して、箱から出してすぐに使用できるようにすることです。少なくとも、pngcrush のメンテナー (こんにちは Glenn) にメールを送信しました。
iphone-fixpngは Linux で動作します。それが何をするかを説明するこの議論を参照してください。オリジナルがダウンしているため、web.archive.org にリンクしています。