2011-09-02 15 views
9

Często używam OptiPNG lub pngcrush, aby zmniejszyć rozmiar pliku obrazów PNG.Zmniejszenie rozmiaru pliku PNG w .NET

Chciałbym móc to zrobić programowo z poziomu aplikacji .NET. Dynamicznie generuję pliki PNG, które są wysyłane na urządzenie mobilne, więc chciałbym ograniczyć rozmiar plików.

Jakość obrazu jest ważna, dlatego w tym przypadku PNG zdecydowanie przebije jpeg.

Czy istnieją jakieś biblioteki, których mogę użyć, aby to zrobić?

+0

Czy zmieniasz rozmiar pliku po ustawieniu rozmiaru ekranu lub minimalizuje pliki jak w PNGOUT? –

+0

Minimalizacja plików jak w PNGOUT. OptiPNG i pngcrush są podobnymi narzędziami. – teedyay

+2

Nie sądzę, że istnieją jakiekolwiek zarządzane biblioteki. OptiPNG jest open source, więc port kodu jest * możliwy *. Alternatywnie, chociaż wątpię, że przyniesie to rezultaty, spróbuj załadować swoje pliki PNG w postaci bitmap (powinno to przeciąć metadane PNG, które mogą być marnujące miejsce), a następnie zakodować je ponownie jako PNG: http://msdn.microsoft.com/ en-us/library/system.windows.media.imaging.pngbitmapencoder.aspx –

Odpowiedz

1

Dlaczego nie spróbujesz uruchomić żadnej z aplikacji wymienionych z poziomu aplikacji przy użyciu parametru polecenia. Lub, jeśli nie jest to możliwe, za pomocą automatyzacji systemu Windows.

+1

Mm, to trochę brzydko z wewnątrz Serwis internetowy. Dostaję pliki przez Internet i zmieniam ich rozmiar, itp. – teedyay

1

Sprawdź nQuant pod numerem http://nquant.codeplex.com. Spowoduje to kwantyzację 32-bitowych plików PNG do 8-bitów przy użyciu całkowicie zarządzanego kodu bez potrzeby tworzenia powłoki w bibliotece C. Obecnie jest to po prostu kwantyzator i zawsze będzie konwertowany na paletę 8-bitową, co może spowodować utratę jakości. Pracuję nad bezstratną funkcją optymalizacji, która, mam nadzieję, wkrótce będzie dostępna.

+0

Potrzebuję naprawdę bezstratnej, więc poczekam z zapartym tchem! – teedyay

+0

Jakieś aktualizacje tego? Jaki jest najlepszy sposób na zredukowanie png do absolutnego minimum? – Don

Powiązane problemy