2012-04-02 10 views
7

Ich habe einige PNG-Bilder aus IPA-Dateien extrahiert und ich möchte wieder die ursprüngliche PNG bekommen, ich wurde darauf hingewiesen, dass pngcush die Aufgabe erforderlich war, damit ich es heruntergeladen und versucht, den folgenden Befehl ausführen:Reverse XCode-Komprimierung mit Pngcrush auf Windows?

pngcrush -fix icon.png icon1.png 

Aber ich bekomme einen libpng Fehler. Ich weiß nicht, ob libpng auch heruntergeladen werden muss, da der Fehler nicht der Fall ist, sagt, dass ich eine andere Version von libpng benötigen, nur sagt:

While reading icon.png: 
    pngcrush caught libpng error: 
    incorrect header check 

Ich habe auch versucht diese ein:

pngcrush -revert-iphone-optimizations icon.png icn1.png 

Und pngcrush fungiert, als ob den Befehl nicht kannte.

Irgendwelche Ideen, was zu tun ist?

+0

Mögen Sie bitte einen Link zu einem „iphone bieten -optimized "PNG, damit wir testen können? –

+0

Auf Mac, wenn Sie nicht mit Terminal umgehen möchten, können Sie iPhonePNGApp verwenden. Sie liefern nur ein Verzeichnis Ihrer Bilder und es konvertiert alle PNG-Bilder in das normale Format. Sehr einfach. – Egis

Antwort

0

Es kennt den Befehl wahrscheinlich nicht. Die Dokumentation, die ich unter -revert-iphone-optimizations gefunden habe, stammt aus einer apple developer page, die darauf hinweist, dass pngcrush Teil des IOS SDK ist. In Anbetracht dessen würde ich vorschlagen, dass es von Apple in diese spezifische Version gehackt wurde und möglicherweise nicht Teil des offiziellen pngcrush-Downloads ist. Wenn das stimmt, müssen Sie das tatsächlich installieren und den mitgelieferten pngcrush verwenden, wie in dem Artikel erklärt.

Ich bin auch ein wenig über die Syntax in diesem Beispiel. Es sieht wie eine lange Option aus und sie beginnen normalerweise mit zwei hythens, nicht eins. Es könnte einfach ein Tippfehler sein, also versuchen Sie auch --revert-iphone-optimizations.

+0

sorry @ SpliFF, es funktioniert nicht mit der Windows-Version von Pngcrush, danke für die Hilfe! –

+0

Ja, willkommen in der Welt von Apple/Microsoft Entwickler Lock-in. Ihre einzige wirkliche Option scheint jemanden mit einem Mac zu finden. – SpliFF

+0

eigentlich habe ich zwei Macs, aber ich möchte das als Windows App ausarbeiten. Da iTunes es hatte, dachte ich, es könnte passieren, dann wieder gehört iTunes zu Apple, also könnten sie betrügen ..;) –

2

Diese Antwort: pngcrush: uncrush on linux? erklärt, dass -revert-iphone-optimizations nur in der Apple-Version von pngcrush vorhanden ist. Aber es weist auf ein paar andere Optionen hin, die funktionieren könnten. Linux, nicht Windows, aber da es eine Quelle gibt, könnte es funktionieren.

+0

danke Sparky! Wird es eine Chance geben, sobald die Arbeit es erlaubt ... :) –

+0

Irgendwelche Ideen, wie man die Quellen mit MingW kompiliert? –

+0

Ich habe keine Windows-Maschine, um es zu versuchen, aber versuchen Sie Folgendes: tar zxvf iphone-fixpng.tgz; cd iphone-fixpng; make all – Sparky

2

Vielleicht können Sie versuchen pngdefry.

Perfekte Handels PNGs mit mehreren IDAT-Tags.

+0

Scheint wie eine gute Wahl. Es scheint, dass es für Linux gebaut ist, aber ich werde sehen, ob ich mich auf Windows gcc machen kann. Vielen Dank –

3

Das könnte Sie interessieren: this C# library Ich habe entwickelt, um umzukehren, was pngcrush tut. Alle existierenden Implementierungen, die ich gefunden habe, waren entweder mit Fehlern durchsetzt oder zu schwierig in mein Projekt zu integrieren, also habe ich das entwickelt. Es gibt Unit Tests, wenn Sie sich dadurch sicherer fühlen.

Die -iphone Neben pngcrush von Apple aufgenommen und ist in der Version von pngcrush im iOS SDK, mit dem unter Verwendung xcrun wie folgt nur zur Verfügung:

xcrun -sdk iphoneos pngcrush -iphone|-revert-iphone-optimizations ...