cotonti.com : Предложение по усовершенствованию https://www.cotonti.com Son konu mesajları Cotonti en Sun, 01 Feb 2026 12:16:10 -0000 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);
]]>
Çrş, 21 Eki 2009 03:30:22 -0000
SunChase при желании квадратные миниатюры
а разве это невыполняется при отключении в настройках "Сохранять пропорции" и выставлении ширины и высоты миниатюр?

чтобы при желании создавалось два варианта миниатюр
ну если похучатся то можно в админку в настройки вписать ещё 2 поля для задавания размеров "вторых" миниатюр и также поковырять это в системе на предмет создания.

Кстати, всё это можно реализовать без правки ядра, на уровне плагина.
если ты за то что написано мною выше,то я считаю данные изменения просто необходимыми (и исполненными в следующих версиях Кота),а не предметом чьих либо бзиков.Лично я долго чухался над этим ньюансом,пока невзял книгу по ПХП и не сделал сам.]]>
Çrş, 21 Eki 2009 02:40:47 -0000
Sergeich Çrş, 21 Eki 2009 02:34:12 -0000 SunChase
  • если оригинальные размеры изображения меньше заданых размеров миниатюр - выводить изображение как есть
  • Если оригинал высоты больше чем оригинал ширины ,и оригинал ширины меньше ширины миниатюры - создание миниатюры будет в режиме "Приоритет : высота"
  • Если оригинал высоты меньше оригиналы ширины - создание миниатюры по Приоритету : ширина

  • В коде это будет выглядеть так :

    
    function sed_createthumb($img_big, $img_small, $small_x, $small_y, $keepratio, $extension, $filen, $fsize, $textcolor, $textsize, $bgcolor, $bordersize, $jpegquality, $dim_priority)
    {
    	if (!function_exists('gd_info'))
    	{ return; }
    
    	global $cfg;
    
    	$gd_supported = array('jpg', 'jpeg', 'png', 'gif');
    
    	switch($extension)
    	{
    		case 'gif':
    			$source = imagecreatefromgif($img_big);
    			break;
    
    		case 'png':
    			$source = imagecreatefrompng($img_big);
    			break;
    
    		default:
    			$source = imagecreatefromjpeg($img_big);
    			break;
    	}
    
    	$big_x = imagesx($source);
    	$big_y = imagesy($source);
    
    	if (!$keepratio)
    	{
    		$thumb_x = $small_x;
    		$thumb_y = $small_y;
    	}
    	elseif ($dim_priority=="Width" && $big_y<$big_x )
    	{
    
                    $thumb_x = $small_x;
    		$thumb_y = floor($big_y * ($small_x / $big_x));
    	}
            elseif ($dim_priority=="Width" && $big_y>$big_x && $big_x<$small_x)
            {
            $thumb_x = floor($big_x * ($small_y / $big_y));
            $thumb_y = $small_y;
            }
            elseif ($dim_priority=="Width")
            {
            $thumb_x = $small_x;
    	$thumb_y = floor($big_y * ($small_x / $big_x));
            }
            elseif ($small_y>$big_y && $small_x>$big_x)
            {
            $thumb_x = $big_x;
            $thumb_y = $big_y;
            }
            else
    	{
    		$thumb_x = floor($big_x * ($small_y / $big_y));
    		$thumb_y = $small_y;
    	}
    
    	..................
    }
    

    В результате :
  • Если изображение меньше миниатюры оно НЕбудет растягиватся
  • По Приоритету: Ширина пользователь получает больше свободы,так как по личному опыту местами нужно выполнение обоих условий границ миниатюр


  • Пишу такое предложение из личного наболевшего,где при маленьких изображениях создавалась "расплывчистая" миниатюра и т.д.
    На вопрос "А чё трудно вместо миниатюры использовать оригинал" отвечу сразу - оригинал оригиналом,а хочется чтобы и миниатюры всех изображений создавались с умом а не "как нибудь"]]>
    Çrş, 21 Eki 2009 02:11:53 -0000