W niektórych przypadkach trzeba mieć pewność, że obrazek, który ma być wyświetlony nie wyjedzie np. poza ustalony rozmiar DIVa. Poniżej zamieszczam funkcję, która wyświetla obrazek z parametrami width oraz height podanymi w parametrach.
Przykład użycia: scalepic(‘plik.jpg’,100,100); wyświetli obrazek, którego rozmiary nie będą przekraczały 100×100px… Oczywiście przeskalowany będzie proporcjonalnie.
function scalePic($file,$maxheight,$maxwidth) { // jesli plik istnieje if (file_exists($file)) { // pobieramy informacje - 2 pierwsze elementy tablicy to bedzie interesujace nas odpowiednio szerokosc i wysokosc obrazka $info=getimagesize($file); // na tej podstawie wyliczamy proporcje obrazka $proporcja=$info[0]/$info[1]; // jesli jest wezszy niz wyzszy if ($info[0]<$info[1]) { // jezeli wysokosc przekracza zadane maksimum if ($info[1]>$maxheight) { // wysokosc ustawiana na to maksimum $height=$maxheight; // szerokosc ustawiana z proporcji $width=$height*$proporcja; } else // jezeli wysokosc nie przekracza maksimum wyswietlamy obrazek o faktycznym rozmiarze { $height=$info[1]; $width=$info[0]; } } // jesli jest szerszy niz wyzszy if ($info[0]>=$info[1]) { // jesli szerokosc przekracza maksimum if ($info[0]>$maxwidth) { // szer. ustawiana na max $width=$maxwidth; // wys. obl. z prop. $height=$width/$proporcja; } else // faktyczny rozmiar { $width=$info[0]; $height=$info[1]; } } // zaokraglanie parametrow do liczby calkowitej $width=round($width); $height=round($height); // wyswietlanie obrazka echo "<img src=$file width=$width height=$height>"; } }
