ja napisałem takie coś.
funkcja_zmien_rozdzielczosc_obrazka.php<?
function zmien_rozdzielczosc_obrazka ($img_path, $maksymalna_szerokosc, $maksymalna_wysokosc)
{
$katalog_serwera = $_SERVER['DOCUMENT_ROOT'];
{
$img_size = GetImageSize(\"$katalog_serwera/$img_path\"); $img_width = $img_size[0];
$img_height = $img_size[1];
$ratio_x = $maksymalna_szerokosc / $img_width;
$ratio_y = $maksymalna_wysokosc / $img_height;
if ($img_width < $maksymalna_szerokosc && $img_height < $maksymalna_wysokosc)
{
$new_width = $img_width;
$new_height = $img_height;
}
else
{
if ($ratio_x > $ratio_y) // Fotka wyzsza niz szersza
{
$new_width = ceil($img_width * $ratio_y); $new_height = $maksymalna_wysokosc;
}
else
{ // Fotka szersza niz wyzsza
$new_width = $maksymalna_szerokosc;
$new_height = ceil($img_height * $ratio_x); }
}
$zrd = ImageCreateFromJpeg(\"$katalog_serwera/$img_path\");
$prz = ImageCreateTrueColor($new_width,$new_height);
ImageCopyResampled($prz,$zrd,0,0,0,0,$new_width,$new_height,$img_width,$img_height);
$zdjecie = pathinfo(\"$katalog_serwera/$img_path\");
$zdjecie_katalog = $zdjecie [\"dirname\"];
$zdjecie_nazwa = $zdjecie [\"basename\"];
$zdjecie_rozszerzenie = $zdjecie [\"extension\"];
$zdjecie_sciezka = \"$zdjecie_katalog/$zdjecie_nazwa\";
$zdjecie_sciezka_zapis = \"$zdjecie_katalog/$zdjecie_nazwa\";
ImageJpeg ($prz, $zdjecie_sciezka_zapis, 80);
ImageDestroy($zrd);
ImageDestroy($prz);
$zdjecie_rozmiar_pliku = filesize($zdjecie_sciezka_zapis); $zdjecie_rozmiar_pliku = ceil($zdjecie_rozmiar_pliku/1024
);
list
($zdjecie_szerokosc, $zdjecie_wysokosc, $type, $attr) = getimagesize ($zdjecie_sciezka_zapis);
$zdjecie = array ($zdjecie_sciezka_zapis, $zdjecie_katalog, $zdjecie_nazwa, $zdjecie_rozszerzenie, $zdjecie_szerokosc, $zdjecie_wysokosc, $zdjecie_rozmiar_pliku);
return $zdjecie;
}
}
?>
aby zrobić miniaturkę include'ujesz funkcję:
<?php
include (\"funkcja_zmien_rozdzielczosc_obrazka.php\");
?>
kopiujesz obrazek na serwer, i odpalasz funkcję z parametrami:
<?php
$miniaturka = zmien_rozdzielczosc_obrazka ($nazwa_pliku, $max_szerokosc, $max_wysokosc);
?>
Funkcja zrobi Ci miniaturkę i zapisze pod podaną nazwą $nazwa_pliku. Zwróci również parametry miniaturki: wielkość, szerokość, rozmiar, rozszerzenie, katalog zapisu itp.
A teraz wystarczy skorzystać z kodu do robienia auto-pop'upów opisanego w topicu
małe w duże obrazki