| Код |
// Функция автоматического масштабирования изображения // $filename — имя исходного изображения // $smallimage — имя файла уменьшенной копии // $w и $h — максимальные размеры изображения по ширине и высоте
function resizeimg($filename, $smallimage, $w, $h) { $dest_img = imagecreatetruecolor($w, $h); // Определение коэффициента сжатия уменьшенной копии изображения $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); echo"$dest_img"; // Вызов функции создания изображения // в зависимости от расширения исходного файла 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); // Масштабирование изображения if (!imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1])) return false; //В зависимости от расширения имени файла с уменьшенной копией, // переданного в параметрах функции, // вызываем функцию сохранения уменьшенной копии в файл $path_parts=pathinfo($smallimage); if ($path_parts["extension"] == "jpg") imagejpeg($dest_img, $smallimage); else if ($path_parts["extension"] == "gif") imagegif($dest_img, $smallimage); else if ($path_parts["extension"] == "png") imagepng($dest_img, $sma11image); // Очищение памяти от созданных изображений imagedestroy($dest_img); imagedestroy($src_img); return true;
}
//############### resizeimg("jpg.jpg", "small.jpg", 50, 50);
|
|