2008-11-14 9 views
5

Ich arbeite auf einer Website, die viele png24-Dateien verwendet, für die Transparenz.Wie können Sie png8 von einem PNG24

Ich muss sie mit Png8-Dateien ersetzen, da alle Png Fix-Stil Javascript Umgehungslösungen für Png24 verursachen IE6 nach dem Zufallsprinzip sperren.

diesen Link finden Sie einen Überblick über die Symptome IE6 Displays zu bekommen - http://blogs.cozi.com/tech/2008/03/transparent-pngs-can-deadlock-ie6.html

Kennt jemand eine einfache Möglichkeit der Ausrichtung bestehende PNG24 Dateien, so dass sie mit dem png8s zu ersetzen?

Ich benutze ein OS X, und Datei-Browser wie Adobe Bridge zeigen dies nicht, noch kann ich die Informationen auf der Kommandozeile oder den Finder finden.

Hilfe!

Antwort

7

Das file Dienstprogramm auf OSX können Sie die Tiefe Farbe erklären in einer PNG-Datei, z:

% file foo.png 
foo.png: PNG image data, 1514 x 1514, 8-bit grayscale, non-interlaced 
0

Vielleicht imagemagick hilft Ihnen bei der Umwandlung von Png24-Dateien in Png8-Dateien.

1

Ich denke, man könnte die falsche Frage stellen. PNG8s haben nicht das wahre Alpha, an dem Sie hart gearbeitet haben, um IE6 zu reparieren. Wenn Sie die PNG24 durch PNG8 ersetzen, sind Sie nicht besser dran als sie durch GIFs zu ersetzen.

Vielleicht könnten Sie ein alternatives Ersatz/Reparatur-Skript testen - es gibt einige erschreckend schlechte da draußen, vielleicht ist das das Problem?

Hier ist (und ich sage das ironisch!) the right question.

+2

PNG-8 unterstützt tatsächlich einen Alpha-Wert mit jeder Farbe Speicherung im Mund, so, mit ihm richtigen Programm und Optimierung, sie gut aussehen kann. Siehe eine der anderen Antworten. –

+3

PNG8 ist nicht dasselbe wie GIF, da PNG8 halbtransparente Pixel speichern kann, wo GIFs nicht können. Photoshop hat diese Fähigkeit nicht (beim Versuch, für das Web zu speichern), aber es ist sehr klar, wenn Sie Fireworks zum Exportieren als PNG8 verwenden. – RussellUresti

1

JoeBloggs hat recht, du stellst die falsche Frage.

Ich hatte nie IE6 mit einem guten Pngfix-Skript zu brechen. Sie haben entweder ein schlechtes Pngfix-Skript oder eine schlechte IE6-Installation.

PNG8 wird Ihre schönen Transparenzen ruinieren und es so aussehen lassen, als würden Sie GIFs verwenden.

3

Sie können tatsächlich Alpha Transparenz in PNG-8 erhalten, aber es ist sehr kompliziert. http://www.sitepoint.com/blogs/2007/09/18/png8-the-clear-winner/ http://www.personal.psu.edu/drs18/blogs/davidstong/2007/09/png8_alpha_transparency_from_f.html

Es schafft im Grunde GIF ähnliche Substanz für IE6 und eine echte PNG mit Alpha-Transparenz für eine besseren Browser. Es ist ein angenehmerer Abbauweg. Momentan denke ich, dass du Fireworks brauchst, aber ich erkunde andere Möglichkeiten.

2

zu Alnitak Antwort hinzuzufügen, sobald Sie alle PNG24 finden Sie konvertieren möchten, können Sie Batch sie alle mit pngquant:

pngquant -v -f --ext .png 256 *.png 

Dies konvertiert alle PNG-Dateien in PNG8 vorhanden, sie zu überschreiben.

+0

Beachten Sie, dass dies 32-Bit-RGBA-PNGs in 8-Bit * oder kleinere * RGBA-Paletten-PNGs konvertiert. Sie können die Palette überprüfen, indem Sie 'pngcheck * .png' ausführen. Wenn Sie aus irgendeinem Grund unbedingt eine 8-Bit-Palette benötigen, lesen Sie [diese Antwort] (https://stackoverflow.com/a/1468389/96656). –

+0

@MathiasBynens AFAIK ImageMagick führt auch Farbzählung durch, also unterscheidet es sich (abgesehen von geringerer Qualität) nicht von Pngquant, wenn das Bild nur 4 oder 2 Bits benötigt. – Kornel

+0

Ich hatte dies getestet, bevor ich meinen vorherigen Kommentar gepostet habe. [Dieses Beispielbild] (https://tibiamaps.github.io/tibia-map-data/minimap-with-markers/Minimap_Color_32000_32000_7.png) geht von 32-Bit RGB + Alpha zu einer 8-Bit-Palette mit 'convert' , während 'pngquant' es zu einer 4-Bit-Palette optimiert. (In 99% aller Fälle wäre das wünschenswert, aber ich habe diesen komischen Anwendungsfall, wo ich eine Palette brauche, die genau 8-Bit ist.) –

1

pngcheck, ein Befehlszeilenprogramm, kann die benötigten Informationen ausgeben. http://www.libpng.org/pub/png/apps/pngcheck.html

pngcheck.exe a.png 
OK: a.png (1024x1024, 32-bit RGB+alpha, non-interlaced, 80.7%). 

pngcheck.exe b.png 
OK: b.png (1024x1024, 8-bit palette+trns, non-interlaced, 83.1%).