pixelranger
Постоялец
- Регистрация
- 23 Июн 2006
- Сообщения
- 381
- Реакции
- 114
- Автор темы
- #1
Нужно сделать фотке превью, сначала уменьшить, чтобы картинка не была меньше превью(по пропорциям), а потом обрезать лишнее. phpthumb не предлагать!
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Теперь понятно, ну для того чтобы получилось более менее качественно,а мне надо так: (h100 w300), а должна стать -(h50 w50), понимаете о чем я?
//$filename - путь к исходному файлу
//$smallimage - путь к уменьшенной копии
//$w - ширина уменьшенной фотографии
//$h - высота уменьшенной фотографии
function resizeimg($filename, $smallimage, $w, $h)
{
$ratio = $w / $h;
list($width, $height) = getimagesize($filename);
if (($width < $w) && ($height < $h))
{
copy($filename, $smallimage);
return true;
}
$src_ratio = $width/ $height;
if ($ratio < $src_ratio) $h = $w/$src_ratio;
else $w = $h*$src_ratio;
$dest_img = imagecreatetruecolor($w, $h);
$src_img = imagecreatefromjpeg($filename);
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $width, $height);
imagejpeg($dest_img, $smallimage);
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}
// $fileresized - путь к уже уменьшенному файлу (миниатюре)
// $x1,$y1 - Верхняя левая точка, вырезаемого кусочка изображения
// $x2,$y2 - Нижняя правая точка, вырезаемого кусочка изображения
function ImageCut($fileresized,$x1,$y1,$x2,$y2){
if(file_exists($fileresized)){
$w=$x2-$x1;
$h=$y2-$y1;
//создадим пустое изображение по заданным размерам
$dest_img=@imagecreatetruecolor($w,$h);
$src_img=@imagecreatefromjpeg($fileresized);
//Копируем
@imagecopyresampled($dest_img,$src_img,0,0,$x1,$y1,$w,$h,$w,$h);
//сохраняем уменьшенную копию в файл
@imagejpeg($dest_img,"filename.jpg");
//чистим память от созданных изображений
@imagedestroy($dest_img);
@imagedestroy($src_img);
return true;
}else{
return false;
}
}
//Вызываем функцию
ImageCut("your-image.jpg",0,0,100,100);
Посмотрите класс, который называется мини фотошоп на php
*** скрытое содержание ***
здесь примеры любых обрезок с картинками, в.т.ч. и те, которые Вам нужны.