2010-01-02 12 views
6

Wszystkie potrzebne jest do stworzenia obrazu PNG z przezroczystym tłem, rysować jakiś tekst w kolorze czarnym na nią i zapisać go za pomocą img.save('target.png', option='optimize')zdjęć zoptymalizować .png z PIL

Wygląda PIL oszczędza .png obrazy w 32- tryb bitowy automatycznie. Czy mogę zmniejszyć głębię kolorów, a przed zapisaniem obrazy wyjściowe nie wyglądają znacznie gorzej? Ponieważ zawiera tylko czarny tekst i przezroczyste tło, myślę, że zmniejszenie głębi kolorów znacznie zmniejszyłoby rozmiar pliku.

+3

Uwaga: poprawną składnią ustawienia flagi 'optimise' jest:' img.save ('target.png', optimize = True) '. –

+0

@martineau Ten link jest martwy, masz lustro? –

+1

@StevenRoose: Tak, spróbuj [ten link] (http://effbot.org/imagingbook/format-png.htm). – martineau

Odpowiedz

3

Hej gniazdo, sprawdź this odpowiedział na pytanie o głębię kolorów PIL. :)

+0

dziękuję, img.convert ('LA') dokonuję optymalizacji, ale nie tak dużo, jak się spodziewałem (niższy współczynnik kompresji niż optipng). img.convert ("P") zamienia tylko cały obraz na czarny. – jack

+0

Wypróbuj 'img.convert ('P', colors = n, palette = Image.ADAPTIVE)'. – bobince

+0

Obraz jednobitowy powinien być najmniejszy, chociaż tekst może wyglądać na nieco postrzępiony. – martineau

Powiązane problemy