Forum Webscript.Ru

Программирование => PHP => Тема начата: AlieN от 24 Мая 2004, 11:19:32

Название: trumbnails & php
Отправлено: AlieN от 24 Мая 2004, 11:19:32
Необходимо сделать превью картинки для фотогалереи.

Только есть одно условие: все превью должны быть одного формата, т.е. квадратные. Думаю в лданном случае целесообразно сделать операцию, аналогичную photoshop->crop центральной части картинки.
Но как?!=)
Название: trumbnails & php
Отправлено: hanslinger от 24 Мая 2004, 14:29:13
gd. imagemagick.
imagecopyresampled, imagecreatefromjpeg.
Я вообще делал сначала форму с яваскриптом, содержащую картинку. При клике данные с координатами клика передавались дальше, а там уже вырезался кусок, центром которого было как раз место клика.
Название: trumbnails & php
Отправлено: ThE0ReTiC от 24 Мая 2004, 15:12:50
AlieN
[p]imagecopyresampled[/p]
Название: trumbnails & php
Отправлено: AlieN от 25 Мая 2004, 13:21:23
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);