Forum Webscript.Ru
Программирование => PHP => Тема начата: AlieN от 24 Мая 2004, 11:19:32
-
Необходимо сделать превью картинки для фотогалереи.
Только есть одно условие: все превью должны быть одного формата, т.е. квадратные. Думаю в лданном случае целесообразно сделать операцию, аналогичную photoshop->crop центральной части картинки.
Но как?!=)
-
gd. imagemagick.
imagecopyresampled, imagecreatefromjpeg.
Я вообще делал сначала форму с яваскриптом, содержащую картинку. При клике данные с координатами клика передавались дальше, а там уже вырезался кусок, центром которого было как раз место клика.
-
AlieN
[p]imagecopyresampled[/p]
-
ThE0ReTiC
Спасибо!
Вот код, вдруг кому потребуется.
$size=GetImageSize("$id-big.jpg");
$tbsize=90; // Размер превьюхи
$i = ImageCreateFromJPEG("$id-big.jpg");
$o = ImageCreateTrueColor($tbsize, $tbsize);
if(!$o) $o=ImageCreate($tbsize, $tbsize);
if($size[0]>$size[1])
//
{
$center=round($size[0]/2);
$lenght=$size[1];
$startY=0;
$startX=$center-round($size[1]/2);
}else{
//
$center=round($size[1]/2);
$lenght=$size[0];
$startX=0;
$startY=$center-round($size[0]/2);
}
@imagecopyresampled($o, $i, 0, 0, $startX, $startY, $tbsize, $tbsize, $lenght, $lenght);
imagejpeg($o, "$id-small.jpg", 70); // 70 - качество JPEG
imagedestroy($o);
imagedestroy($i);