#Ôóíêöèÿ äëÿ ñîçäàíèÿ ìàëåíüêîé êîïèè
$w = 150;
$h = 150;
// Èìÿ ôàéëà ñ ìàñøòàáèðóåìûì èçîáðàæåíèåì
$filename = FILE;
// Èìÿ ôàéëà ñ óìåíüøåííîé êîïèåé.
$smallimage = "photo/small/$id_name.jpg";
// îïðåäåëèì êîýôôèöèåíò ñæàòèÿ èçîáðàæåíèÿ, êîòîðîå áóäåì ãåíåðèòü
$ratio = $w/$h;
// ïîëó÷èì ðàçìåðû èñõîäíîãî èçîáðàæåíèÿ
$size_img = getimagesize($filename);
// Åñëè ðàçìåðû ìåíüøå, òî ìàñøòàáèðîâàíèÿ íå íóæíî
if (($size_img[0]<$w) && ($size_img[1]<$h)) return true;
// ïîëó÷èì êîýôôèöèåíò ñæàòèÿ èñõîäíîãî èçîáðàæåíèÿ
$src_ratio=$size_img[0]/$size_img[1];
// Çäåñü âû÷èñëÿåì ðàçìåðû óìåíüøåííîé êîïèè, ÷òîáû ïðè ìàñøòàáèðîâàíèè ñîõðàíèëèñü
// ïðîïîðöèè èñõîäíîãî èçîáðàæåíèÿ
if ($ratio<$src_ratio)
{
$h = $w/$src_ratio;
}
else
{
$w = $h*$src_ratio;
}
// ñîçäàäèì ïóñòîå èçîáðàæåíèå ïî çàäàííûì ðàçìåðàì
$dest_img = imagecreatetruecolor($w, $h);
$white = imagecolorallocate($dest_img, 255, 255, 255);
if ($size_img[2]==2) $src_img = imagecreatefromjpeg($filename);
else if ($size_img[2]==1) $src_img = imagecreatefromgif($filename);
else if ($size_img[2]==3) $src_img = imagecreatefrompng($filename);
// ìàñøòàáèðóåì èçîáðàæåíèå ôóíêöèåé imagecopyresampled()
// $dest_img - óìåíüøåííàÿ êîïèÿ
// $src_img - èñõîäíîé èçîáðàæåíèå
// $w - øèðèíà óìåíüøåííîé êîïèè
// $h - âûñîòà óìåíüøåííîé êîïèè
// $size_img[0] - øèðèíà èñõîäíîãî èçîáðàæåíèÿ
// $size_img[1] - âûñîòà èñõîäíîãî èçîáðàæåíèÿ
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
// ñîõðàíÿåì óìåíüøåííóþ êîïèþ â ôàéë
if ($size_img[2]==2) imagejpeg($dest_img, $smallimage);
else if ($size_img[2]==1) imagegif($dest_img, $smallimage);
else if ($size_img[2]==3) imagepng($dest_img, $smallimage);
// ÷èñòèì ïàìÿòü îò ñîçäàííûõ èçîáðàæåíèé
imagedestroy($dest_img);
imagedestroy($src_img);
#Ôóíêöèÿ äëÿ ñîçäàíèÿ ìàëåíüêîé êîïèè