Perceive |
|
---|---|
Насчёт приоритетов высоты/ширины. У меня на сайте миниатюры грузят "блондинки". К одной статье загрузят горизонтальную картинку, к другой вертикальную. Равнялось по ширине, но в итоге такой безобразный разброс высоты иногда получался. В итоге надоело и подсмотрел как делается обрезка под нужные размеры. Т.е. чтобы и высота и ширина соответствовали заданной. Вообще, должен быть выбор между опциями обрезки, но для миниатюр страниц обрезка под заданные размеры, считаю, должна быть по умолчанию.
Код для плугина 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);
|