Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114 Deprecated: Function eregi() is deprecated in /blog/wp-content/plugins/tpbc.php on line 96 W tej poradzie przedstawiony zostanie sposób na łatwe zaprogramowanie funkcji, dzięki której mając jeden źródłowy obraz będzie można go wyświetlać w różnych miejscach, w różnych rozmiarach, w zależności od konkretnych potrzeb. Przykładowo mamy kilka tysięcy zdjęć produktów w sklepie. Aby ciekawie przedstawić naszą ofertę, tworzymy różnego rodzaju listy z zajawkami i miniaturami, galerie, listy wyszukiwanych produktów, pokazy, w których używamy zdjęć produktów. Niekiedy chcemy pokazać listę z malutkimi zdjęciami, czasem pokaz zmieniających się zdjęć w średnim rozmiarze, najczęściej przy zachowaniu zasady, że wyświetlane zdjęcia mają tę samą maksymalną szerokość lub wysokość. Jednym ze sposobów, jest trzymanie na serwerze kilku wersji rozmiarowych tego samego zdjęcia. Można też, co zaproponuję w tej poradzie, skorzystać z funkcji, która będzie dostarczała danego zdjęcie w takim rozmiarze, jaki nas interesuje. Przykład: Kod: php
<?php function zdjecieRozmiar($szerokosc, $wysokosc, $cel) { //funkcja z trzema argumentami (orginalna szerokosc, orginalna wysokosc, rozmiar doceolowy) if ($szerokosc > $wysokosc) { // zaokraglenie wartosci szerokosc i wysokosc //zwrócenie kawalka kodu html z nowymi rozmiarami zdjecia echo "width=\"$szerokosc\" height=\"$wysokosc\""; } ?> W powyższym przykładzie funkcja pobiera 3 argumenty. Pierwsze 2 to szerokość i wysokość orginalnego zdjęcia, które będą podstawiane w sposób opisany w dalszej części. Trzecia to docelowa szerokość lub wysokość, w zależności od tego czy orginalne zdjęcie to zdjęcie typu krajobraz (szerokość > wysokość) lub portret (szerkość < wysokość). Po pobraniu powyższych argumentów, funkcja sprawdza ile procent orginalnego rozmiaru stanowi rozmiar docelowy. Wartość ta jest następnie wykorzystana do ustalenia nowej szerokości i wysokości zdjęcia, które dodatkowo po są zaokrąglane (wynik mnożenia nie zawsze będzie liczbą całkowitą). Trzeba zwrócić uwagę na to, że do obliczania zmiennej $procent używany jest dłuższy bok, gdyż to właśnie dłuższy bok jako pierwszy osiągnie rozmiar określony zmienną $cel. Zanim użyjemy naszej funkcji musimy pobrać szerokość i wysokość orginalną zdjęcia, który chcemy wyświetlić. Służy do tego funkcja PHP getimagesize(). Funkcja zwraca tablicę z wartościami kolejno: szerokość, wysokość, typ. Kod: php
$mojezdjecie = getimagesize("zdjecia/zdj1.jpg"); W tym momencie zmienna $mojezdjecie staje się tablicą, która zawiera podstawowe informacje o zdjęciu zdj1.jpg. Indeks 0 zawiera szerokość ($mojezdjecie[0]), indeks 1 - wysokość ($mojezdjecie[1]). Test działania funkcji: Załóżmy, że chcemy wyświetlić listę ładnych zdjęć w kolumnie, a ich szerokość lub wysokość nie może przekraczać 150 pikseli. Kod: php
<?php ?> <img src="zdjecia/zdj1.jpg" <?php zdjecieRozmiar($mojezdjecie[0], $mojezdjecie[1], 150); ?>> W ten sposób wyświetlono za pomocą funkcji zdjecieRozmiar() - obraz o zaplanowanym rozmiarze. Teraz nasze zdjęcie nie będzie szersze lub wyższe niż zaplanowane 150 pikseli. Zaletą używania takiej funkcji, jest to, że nie musimy utrzymywać na serwerze jednego zdjęcia w kilku rozmiarach. Wadą może być to, że funkcja zmienia jedynie zapis html narzucając zdjęciu w jakich rozmiarach ma się wyświetlać, nie zmienia natiomiast jego orginalnej wagi jaką zajmuje na dysku. Warto zatem używać tej techniki na stronach, na których liczba jednocześnie wyświetlanych zdjęć nie jest zbyt duża. Autor: Adam Suchowski nowe Porady PHP » zobacz wszystkieWordPress database error: [Incorrect file format 'wp_comments']
|