Форумы / National / Russian / Предложение по усовершенствованию

Perceive
#18043 21.10.2009 03:30
Насчёт приоритетов высоты/ширины. У меня на сайте миниатюры грузят "блондинки". К одной статье загрузят горизонтальную картинку, к другой вертикальную. Равнялось по ширине, но в итоге такой безобразный разброс высоты иногда получался. В итоге надоело и подсмотрел как делается обрезка под нужные размеры. Т.е. чтобы и высота и ширина соответствовали заданной. Вообще, должен быть выбор между опциями обрезки, но для миниатюр страниц обрезка под заданные размеры, считаю, должна быть по умолчанию.

Код для плугина pagethumb Seditio. Думаю, сложностей в понимании не возникнет.
if(!empty($_FILES['thumb']['tmp_name']) && empty($error_string) && $pid != 0)
{
$width = imagesx($image);
$height = imagesy($image); 

$new_width 	= $cfg['plugin']['pagethumb']['width'];
$new_height	= $cfg['plugin']['pagethumb']['height'];
$image_resized	= imagecreatetruecolor($new_width, $new_height);

$wm = $new_width / $width;
$hm = $new_height / $height;

if ($wm>$hm)
{
	$new_height = $height * $wm;
}
else
{
	$new_width = $width * $hm;
}

imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

$cfg['pagethumb_dir'] = 'datas/pagethumb/';
$thumb = $pid."-thumb.jpg";
$thumbpath = $cfg['pagethumb_dir'].$thumb;

if (file_exists($thumbpath )){ unlink($thumbpath ); }

imagejpeg($image_resized, $thumbpath, 70);