Zmniejszanie obrazków w WordPress
- Piotr Bartczak
- 4 lis 2011
- 1 minut(y) czytania
Szymon w we wpisie Prosty sposób na zmniejszenie rozmiaru plików graficznych w WordPressie podał sposób na zmniejszenie obrazków używanych przez WordPress.
Moim zdaniem podany sposób jest przerostem formy nad treścią, a dodatkowo, na co Szymon zwraca uwagę, trzeba jakieś zewnętrzne regulaminy akceptować :D
Chciałem podać bardzo prosty przykład kodu, który potrafi mocno zmniejszyć pliki graficzne typu JPEG używane w treści, które to przy zapisywaniu mogą mieć różny stopień kompresji. Oczywiście ten ostatni należy tak dobrać tak, żeby grafika nie była zbyt brzydka.
Rozwiązanie opiera na się na filtrze jpeg_quality, który określa stopień kompresji i który możemy umieścić w swoim szablonie, co oznacza, że działa tylko na te obrazki, którym zmieniamy rozmiar.
add_action( 'init', 'iworks_init' );
function iworks_init()
{
add_filter( 'jpeg_quality', create_function( '', 'return 80;' ) );
}
Oczywistą wadą jest to że będzie to działać dla nowo ładowanych obrazków.
Przygotowałem plik który ma różne stopnie kompresji i co za tym idzie różne rozmiary.plikkompresjarozmiarzysk względem 100%ruda.100.jpg100%230K0ruda.090.jpg90%122K46%ruda.080.jpg80%91K60%ruda.070.jpg70%73K68%
Proszę zauważyć, że minimalna utrata jakości 100->90 daje oszczędność wielkości pliku na poziomie 46%.
ruda.100.jpg 230K

ruda.090.jpg 122K

ruda.080.jpg 91K

ruda.070.jpg 73K

Jak widać, w tym przypadku nie ma prawie różnicy, ale na zdjęciach z dużą liczbą szczegółów mogą pojawić się brzydkie artefakty, więc tak jak wcześniej pisałem, trzeba to dobrać do swoich potrzeb.
Jak użyć podany kod?
Masz 3 rozwiązania:
wrzuć załączony plik do folderu wp-content/plugins, a potem włącz wtyczkę
wrzuć załączony plik do folderu wp-content/mu-plugins
dołącz kod do pliku functions.php aktualnie używanego motywu
Comments