2008-11-14 10 views
5

Pracuję na stronie internetowej, która używa dużo plików png24, dla przejrzystości.Jak można powiedzieć, png8 z png24

Muszę zastąpić je plikami png8, ponieważ wszystkie obejścia png w stylu png fix dla png24 powodują, że IE6 blokuje się losowo.

Zobacz ten link aby zorientować wyświetlaczach objawy IE6 - http://blogs.cozi.com/tech/2008/03/transparent-pngs-can-deadlock-ie6.html

Czy ktoś wie łatwy sposób kierowania istniejące pliki png24, aby wymienić je na png8s?

Używam OS X, a przeglądarki plików, takie jak Adobe Bridge, nie pokazują tego, ani nie mogę znaleźć informacji w linii poleceń lub wyszukiwarce.

Pomoc!

Odpowiedz

7

Narzędzie file na OSX można powiedzieć głębię kolorów w pliku PNG, np:

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

myślę, że może być pytaniem niewłaściwy pytanie. PNG8 nie mają prawdziwej alfa, którą ciężko pracujesz, aby naprawić w IE6. Jeśli zamienisz PNG24 na PNG8, nie ma nic lepszego niż zastąpienie ich GIF-ami.

Może mógłbyś przetestować alternatywny skrypt zastępczy/poprawkę - jest tam kilka szokująco złych, może to jest problem?

Oto (i mówię to językiem w policzek!) the right question.

+2

PNG-8 faktycznie obsługuje przechowywania wartości alfa z każdego koloru na podniebieniu, tak, ze ma rację i optymalizacji programu, mogą wyglądać świetnie. Zobacz jedną z pozostałych odpowiedzi. –

+3

PNG8 to nie to samo co GIF, ponieważ PNG8 może przechowywać półprzezroczyste piksele, gdzie GIF-y nie. Photoshop nie ma tej możliwości (przy próbie Save for Web), ale jest to bardzo jasne, gdy używasz Fireworks do eksportu jako PNG8. – RussellUresti

1

JoeBloggs ma rację, zadajesz niewłaściwe pytanie.

Nigdy nie miałem złamania IE6 z dobrym skryptem pngfix. Masz albo zły skrypt pngfix, albo złą instalację IE6.

PNG8 zrujnuje Twoje ładne folie i sprawi, że będzie wyglądać, jakbyś używał GIF-ów.

3

Rzeczywiście można uzyskać przezroczystość alfa w PNG-8, ale jest to bardzo skomplikowane. 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

To w zasadzie tworzy GIF jak substancję dla IE6 i prawdziwego PNG z przezroczystości alfa lepszych przeglądarek. To bardziej przyjemna ścieżka degradacji. W tej chwili myślę, że potrzebujesz Fajerwerków, ale badam inne opcje.

2

Aby dodać odpowiedź Alnitak jest, gdy znajdziesz wszystkie PNG24 chcesz przekonwertować, możesz partii im wszystko z pngquant:

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

To konwertuje wszystkie pliki PNG do PNG8 w miejscu ich nadpisanie.

+0

Należy zauważyć, że konwertuje on 32-bitowe pliki PNG RGBA na 8-bitowe * lub mniejsze * PNG palety RGBA. Możesz sprawdzić paletę, uruchamiając 'pngcheck * .png'. Jeśli z jakiegoś powodu absolutnie potrzebujesz 8-bitowej palety, zobacz [odpowiedź] (https://stackoverflow.com/a/1468389/96656). –

+0

@MathiasBynens AFAIK ImageMagick również dokonuje zliczania kolorów, więc (oprócz niższej jakości) nie różni się niczym od pngquant, gdy obraz kończy się, wymagając jedynie 4 lub 2 bitów. – Kornel

+0

Testowałem to przed opublikowaniem mojego poprzedniego komentarza. [Ten przykład obrazu] (https://tibiamaps.github.io/tibia-map-data/minimap-with-markers/Minimap_Color_32000_32000_7.png) przechodzi z 32-bitowego RGB + alfa do 8-bitowej palety za pomocą 'convert ' , podczas gdy 'pngquant' optymalizuje go do 4-bitowej palety. (W 99% wszystkich przypadków, które byłyby pożądane, jednak mam ten dziwny przypadek użycia, gdy potrzebuję palety, która jest dokładnie 8-bitowa.) –

Powiązane problemy