<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>cotonti.com : Генерация миниатюр</title>
		<link>https://www.cotonti.com</link>
		<description>Neueste Themenbeiträge</description>
		<generator>Cotonti</generator>
		<language>en</language>
		<pubDate>Sat, 11 Apr 2026 23:49:50 -0000</pubDate>

		<item>
			<title>Alex300</title>
			<description><![CDATA[Либо так:<br />
Четыре способа создания миниатюр:<br />
<br />
Третий параметр в приорететах: &quot;Не более указанных размеров&quot;, чтобы миниатюра вписывалсь в указанные ограничения по ширине и высоте. Без обрезания картинки(код 2-мя постами выше). Тут можно генерировать имниатюру с фоном, чтобы не добавлять лишние DIV'ы в страницу, но можно и без него.<br />
  <br />
Четвертый: образование миниатюры &quot;Кропом&quot;, как в первом посте у Kort, урезая их до заданного соотношения сторон.<br />
<br />
Первые 2 лучше оставить для поддержки старых сайтов.<br />
<br />
И раз уж будет правится эта функция:<br />
<br />
то в начало тела этой функции предлагаю добавить конструкцию типа:<br />
<br />
<div class="highlight"><pre class="php">
if(function_exists('sed_custom_createthumb'))
{
    sed_custom_createthumb($img_big, $img_small, $small_x, $small_y, $keepratio, $extension, $filen, $fsize, $textcolor, $textsize, $bgcolor, $bordersize, $jpegquality, $dim_priority);
    return;
}
</pre></div>
<br />
Это даст возможность кому необходимо создать свои функции создания миниатюр не хакая ядро. По аналогии с парсингом.<br />
<br />
И, если добавлять в транк эти новшества, думаю имеет смысл их добавить в <strong>Genoa 0.6.11</strong> - в очередную версию джижка, не откладывая до Siena.<br />
<br />
<strong>Добавлено 25 дней спустя:</strong><br />
<br />
Вот так решил вопрос с генерацией миниатюр так, чтобы они не выходили за указанные размеры. Также предлагаемые ниже код уменьшает загружаемое изображение до заданных размеров и ставит &quot;водяной знак&quot;.<br />
<br />
Для этого в файл system/functions.custom.php добавить следующий код<br />
<br />
<div style="margin:4px 0px 4px 0px"><input type="button" value="Код" onclick="if(this.parentNode.getElementsByTagName('div')[0].style.display != '') { this.parentNode.getElementsByTagName('div')[0].style.display = ''; } else { this.parentNode.getElementsByTagName('div')[0].style.display = 'none'; }" /><div style="display:none" class="spoiler">
<div class="highlight"><pre class="php">
/**
 * Creates image thumbnail
 *
 * @param string $img_big Original image path
 * @param string $img_small Thumbnail path
 * @param int $small_x Thumbnail width
 * @param int $small_y Thumbnail height
 * @param string $extension Image type
 * @param string $bgcolor Background color
 * @param int $bordersize Border thickness
 * @param int $jpegquality JPEG quality in %
 * @param boolean $thumb_filled Превью полность заполняет указанные размеры?
 * @param string $dim_priority Resize priority dimension
 * @param res $source рессурс, указывающий на загруженное изображение
 *    использовать только если это изображение было загружено ранее
 *    чтобы не грузить его вновь в память из файла
 */
/**
 * Use 4 thumb creation modes:
 1 - Height priority 
 2 - Width priority 
 3 - Stay within specified thumb dimensions 
*/
function portal30_createthumb($img_big, $img_small, $small_x, $small_y, $extension, $bgcolor, $bordersize, $jpegquality, $dim_priority=&quot;Width&quot;, $thumb_filled = false, &amp;$source = NULL){
	
	$dim_priority = 3;		// by Alex - не выходим за указанные размеры
	
	if (!function_exists('gd_info'))
	{ return; }

	$gd_supported = array('jpg', 'jpeg', 'png', 'gif');
	
	$todestroy = false;
	
	if (!$source){
		switch($extension)
		{
			case 'gif':
				$source = imagecreatefromgif($img_big);
				break;
	
			case 'png':
				$source = imagecreatefrompng($img_big);
				break;
	
			default:
				$source = imagecreatefromjpeg($img_big);
				break;
		}
		$todestroy = true;
	}

	$big_x = imagesx($source);
	$big_y = imagesy($source);
	
	// расчет размеров превьюхи
	if ($dim_priority==&quot;Width&quot;)
	{
		$thumb_x = $small_x;
		$thumb_y = floor($big_y * ($small_x / $big_x));
	}
	elseif ($dim_priority==&quot;Height&quot;)
	{
		$thumb_x = floor($big_x * ($small_y / $big_y));
		$thumb_y = $small_y;
	}
	elseif ($dim_priority==3) 		// by Alex
	{
		if ($big_x == $big_y){
            $thumb_x = $small_x - $bordersize*2;
            $thumb_y = $small_y - $bordersize*2;
        }elseif ($big_x &gt; $big_y){
            $thumb_x = $small_x - $bordersize*2;
            $thumb_y = floor($big_y * ($small_x / $big_x)) - $bordersize*2;
        }elseif ($big_x &lt; $big_y){
            $thumb_x = floor($big_x * ($small_y / $big_y))+4 - $bordersize*2;
            $thumb_y = $small_y - $bordersize*2;
        }
	}
	
	// Создаем превьюху
	if ($thumb_filled){
		if ($cfg&#091;'th_amode'&#093;=='GD1'){
			$new = imagecreate($small_x, $small_y); 
		}else{
			$new = imagecreatetruecolor($small_x, $small_y); 
		}
		$border_color = imagecolorallocate ($new, 153, 153, 153);
		imagefilledrectangle ($new, 0,0, $small_x, $small_y, $border_color);
		
		$background_color = imagecolorallocate ($new, $bgcolor&#091;0&#093;, $bgcolor&#091;1&#093; ,$bgcolor&#091;2&#093;);
		imagefilledrectangle ($new, $bordersize, $bordersize, $small_x - $bordersize -1, $small_y - $bordersize - 1, $background_color);
		$dst_x = ( $small_x - $thumb_x ) / 2;
		$dst_y = ( $small_y - $thumb_y ) / 2;
		if ($cfg&#091;'th_amode'&#093;=='GD1'){
			imagecopyresized($new, $source, $dst_x ,$dst_y, 0, 0, $thumb_x, $thumb_y, $big_x, $big_y); 
		}else{
			imagecopyresampled($new, $source, $dst_x ,$dst_y, 0, 0, $thumb_x, $thumb_y, $big_x, $big_y); 
		}
	}else{
		if ($cfg&#091;'th_amode'&#093;=='GD1')
		{ $new = imagecreate($thumb_x+$bordersize*2, $thumb_y+$bordersize*2); }
		else
		{ $new = imagecreatetruecolor($thumb_x+$bordersize*2, $thumb_y+$bordersize*2); }
		$background_color = imagecolorallocate ($new, $bgcolor&#091;0&#093;, $bgcolor&#091;1&#093; ,$bgcolor&#091;2&#093;);
		imagefilledrectangle ($new, 0,0, $thumb_x+$bordersize*2, $thumb_y+$bordersize*2, $background_color);
		if ($cfg&#091;'th_amode'&#093;=='GD1')
		{ imagecopyresized($new, $source, $bordersize, $bordersize, 0, 0, $thumb_x, $thumb_y, $big_x, $big_y); }
		else
		{ imagecopyresampled($new, $source, $bordersize, $bordersize, 0, 0, $thumb_x, $thumb_y, $big_x, $big_y); }
	}
	
	switch($extension)
	{
		case 'gif':
			imagegif($new, $img_small);
			break;

		case 'png':
			imagepng($new, $img_small);
			break;

		default:
			imagejpeg($new, $img_small, $jpegquality);
			break;
	}
	
	imagedestroy($new);
	if ($todestroy) imagedestroy($source);
}

/**
 * Уменьшаем изображение и ставим водяной знак
 * @param string $source_f Путь и имя файла исходного изображения
 * @param int $width Предельная ширина изображения
 * @param int $height предельная высота изображения. Она имеет приоретет
 * @param int $extension тип изображения (расширение) 'jpg', 'jpeg', 'png', 'gif'
 * @param string $watermark Путь и имя файла водяного знака
 * @param boolean $create_thumb Создавать ли превьюху. Это действие заменит стандартный процесс
 *      создания превьюх
 * @param string $thumb_f Путь и имя файла создаваемой превьюхи
*/
$p30_img_width = 950;
$p30_img_heght = 520;
$p30_watermark = './skins/alex-natty-2/img/watermark.png';	// пока только PNG
$p30_jpegquality = 80;
$p30_thumb_filled = true;	// Превью полность заполняет указанные размеры?

function process_uploaded_imgage($source_f, $width, $height, $extension, $jpegquality = 80, $watermark = '', $create_thumb = false, $thumb_f = ''){
	
	global $cfg, $p30_thumb_filled;
	
	if (!function_exists('gd_info'))
	{ return; }

	$gd_supported = array('jpg', 'jpeg', 'png', 'gif');
	
	switch($extension)
	{
		case 'gif':
			$source = imagecreatefromgif($source_f);
			break;

		case 'png':
			$source = imagecreatefrompng($source_f);
			break;

		default:
			$source = imagecreatefromjpeg($source_f);
			break;
	}
	
	// Создаем превью
	if($create_thumb){
		$th_colorbg = array(hexdec(substr($cfg&#091;'th_colorbg'&#093;,0,2)), hexdec(substr($cfg&#091;'th_colorbg'&#093;,2,2)), hexdec(substr($cfg&#091;'th_colorbg'&#093;,4,2)));
		portal30_createthumb($source_f, $thumb_f, $cfg&#091;'th_x'&#093;,$cfg&#091;'th_y'&#093;, $extension, $th_colorbg, $cfg&#091;'th_border'&#093;, $cfg&#091;'th_jpeg_quality'&#093;, $cfg&#091;'th_dimpriority'&#093;, $p30_thumb_filled, $source);
	}
	
	$big_x = imagesx($source);
	$big_y = imagesy($source);
	
	if ( ($big_x &gt; $width) || ($big_y &gt; $height)){
		if ($big_x == $big_y){
			$new_x = $height;
			$new_y = $height;
		}else{
			$new_x = floor($big_x * ($height / $big_y))+4;
			$new_y = $height;
		}
		if ($new_y &gt; $height){
			$new_x = floor($new_x*($height / $new_y));
			$new_y = $height;
		}
		if ($new_x &gt; $width){
			$new_y = floor($new_y*($width / $new_x));
			$new_x = $width;
		}
		
	}else{
		$new_x = $big_x;
		$new_y = $big_y;
	}
	
	$new_img = imagecreatetruecolor($new_x, $new_y);
	imagecopyresampled($new_img, $source, 0 ,0, 0, 0, $new_x, $new_y, $big_x, $big_y);

	if ($watermark != ''){
		list($watm_x, $watm_y) = getimagesize($watermark);
		if ( ($watm_x + 60) &lt; $new_x &amp;&amp; ($watm_y + 40) &lt; $new_y ){
			$watm = imagecreatefrompng($watermark);
			imagecopy($new_img, $watm, $new_x - $watm_x - 30 , $new_y - $watm_y - 20, 0, 0, $watm_x, $watm_y);
			imagedestroy($watm);
		}
	}
	
	unlink($source_f);
	switch($extension)
	{
		case 'gif':
			imagegif($new_img, $source_f);
			break;

		case 'png':
			imagepng($new_img, $source_f);
			break;

		default:
			imagejpeg($new_img, $source_f, $jpegquality);
			break;
	}
	
	imagedestroy($new_img);
	imagedestroy($source);
} // process_uploaded_imgage
</pre></div>
</div></div>
<br />
и создать такой плагин:<br />
<br />
<div class="highlight"><pre class="php">
&lt;?PHP
/* ====================
&#091;BEGIN_SED_EXTPLUGIN&#093;
Code=portal30
Part=pfs.upload.moved
File=portal30.pfs.upload.moved
Hooks=pfs.upload.moved
Tags=
Minlevel=0
Order=10
&#091;END_SED_EXTPLUGIN&#093;
==================== */
// *********************************************
// *    Cotonti:  &quot;Portal30&quot;                   *
// *     Уменьшим картинку                     *
// *             и поставим ватермарк          *
// *        <a href="http://portal30.ru" rel="nofollow">http://portal30.ru</a>                 *
// *                                           *
// *            © Alex &amp; Naty Studio  2010     *
// *********************************************

if (!defined('SED_CODE')) { die('Wrong URL.'); }

// Обработка загруженного изображения
if (in_array($f_extension, $gd_supported) &amp;&amp; file_exists($cfg&#091;'pfs_dir_user'&#093;.$u_newname)){
	@unlink($cfg&#091;'th_dir_user'&#093;.$u_newname);
	
	process_uploaded_imgage($cfg&#091;'pfs_dir_user'&#093;.$u_newname, $p30_img_width, $p30_img_heght, $f_extension, $p30_jpegquality, $p30_watermark, true, $cfg&#091;'th_dir_user'&#093;.$u_newname); 
	$u_size = filesize($cfg&#091;'pfs_dir_user'&#093;.$u_newname);
	// Превью создали, переделывать не нужно.
	$gd_supported = array();
	
}
?&gt;
</pre></div>]]></description>
			<pubDate>Sa, 02 Okt 2010 19:47:39 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26458]]></link>
		</item>
		<item>
			<title>Kort</title>
			<description><![CDATA[Ок, если резюмировать, получается следующее: режим генерации миниатюр должен иметь 3 положения: приоритет высоты, приоритет ширины и &quot;минимально возможная миниатюра указанных размеров&quot; (см. схемы в лиде). Генерацию миниатюр с фоном можно попробовать уложить в алгоритм, но я считаю, это сильно усложнит все дело (тем более что это можно гибко реализовать через див + фон).<br />
Миниатюра в идеале должна генериться в ручном режиме через JS. Но идеалы в котонти реализуются плагинами, поэтому остаются 3 положения. <br />
Мое сугубо личное мнение -- приоритет высоты и приоритет ширины можно и нужно удалить. Но, возможно, владельцы сайтов с 1000+ страницами, где картинки размещены в строку в тексте страницы, будут против.]]></description>
			<pubDate>Sa, 02 Okt 2010 18:37:10 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26457]]></link>
		</item>
		<item>
			<title>Alex300</title>
			<description><![CDATA[Да, об этом я и пытаюсь сказать. Его вполне можно сделать третьим приоритетом: &quot;Не более указанных размеров&quot;.<br />
Да и под кроп действительно не сложно доработать.]]></description>
			<pubDate>Do, 30 Sep 2010 05:08:13 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26402]]></link>
		</item>
		<item>
			<title>Sergey</title>
			<description><![CDATA[Смотрим  текущую функцию, и О!! видим <div class="highlight"><pre class="php">elseif ($dim_priority==&quot;Width&quot;)</pre></div> т.е. устанавливаем как подгоняем: только по высоте или только по ширине ==&quot;Width&quot; смотрим тот, старый мой вариант <div class="highlight"><pre class="php">if ($big_x == $big_y)
                {
                $thumb_x = $small_x;
                $thumb_y = $small_y;
                }

        elseif ($big_x &gt; $big_y)
                {
                $thumb_x = $small_x;
                $thumb_y = floor($big_y * ($small_x / $big_x));
                }

        elseif ($big_x &lt; $big_y)
                {
                $thumb_x = floor($big_x * ($small_y / $big_y))+4;
                $thumb_y = $small_y;
                }</pre></div> у меня получалось то, что и изображено в первом посте - просто, тогда я не правильно понял, как пользоваться той установкой, ну и подправил<br />
Соответственно такие галереи <blockquote> <a href="http://portal30.ru/list.php?c=wedding_photo_2009" rel="nofollow">http://portal30.ru/list.php?c=wedding_photo_2009</a>
</blockquote> и получаются]]></description>
			<pubDate>Do, 30 Sep 2010 04:54:30 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26401]]></link>
		</item>
		<item>
			<title>Kort</title>
			<description><![CDATA[Речь не про вписывание -- сейчас все так и работает. Речь о создании миниатюр <span style="text-decoration:underline">одинаковых</span> размеров при помощи подрезки.]]></description>
			<pubDate>Do, 30 Sep 2010 04:46:45 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26399]]></link>
		</item>
		<item>
			<title>Sergey</title>
			<description><![CDATA[Функции задавался прямоугольник, в который надо было бы загнать картинку. Функция сама выбирала , как &quot;вгонять&quot; в прямоугольник, по высоте или по ширине.]]></description>
			<pubDate>Do, 30 Sep 2010 04:34:32 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26397]]></link>
		</item>
		<item>
			<title>Kort</title>
			<description><![CDATA[<blockquote><a href="https://www.cotonti.com/forums.php?m=posts&amp;p=26393#26393">#</a> <strong>terracota :</strong>
Так все-таки «это дело несколько лишних строк» или «для твоего случая действительно разумно использовать див/фон»?<br />
<br />
Еще раз повторюсь, что я не программист и не могу написать эти самые «несколько лишних строк».<br />
</blockquote>Я говорю про подрезку изображений под фиксированные размеры -- чтобы не было &quot;частокола&quot; при выводе изображений в ряд. Если кому-то в миниатюре нужно сохранять внешний вид изображения за счет фона, это можно сделать за счет &quot;умной&quot; подрезки или средствами html/css. <br />
И здесь никто не говорит о том, что изменять sed_createthumb должен terracota.]]></description>
			<pubDate>Do, 30 Sep 2010 04:05:27 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26395]]></link>
		</item>
		<item>
			<title>Sergey</title>
			<description><![CDATA[Дело в том, что это, по моему очень древний баг, который тянется со времен ЛДУ, я вроде бы, даже исправление предлагал. У меня, на сайте все прекрасно работает, так, как и заявлено в теме: Вот эта функция, что я делал уже не помню:<div style="margin:4px 0px 4px 0px"><input type="button" value="функция" onclick="if(this.parentNode.getElementsByTagName('div')[0].style.display != '') { this.parentNode.getElementsByTagName('div')[0].style.display = ''; } else { this.parentNode.getElementsByTagName('div')[0].style.display = 'none'; }" /><div style="display:none" class="spoiler"><div class="highlight"><pre class="php">function ldu_createthumb($img_big, $img_small, $small_x, $small_y, $keepratio, $extension, $filen, $fsize, $textcolor, $textsize, $bgcolor, $bordersize, $jpegquality)
        {
        global $cfg;

        if ($extension=='png')
                { $source = imagecreatefrompng($img_big); }
        else
                { $source = imagecreatefromjpeg($img_big); }

        $big_x = imagesx($source);
        $big_y = imagesy($source);

        if (!$keepratio)
                {
                $thumb_x = $small_x;
                $thumb_y = $small_y;
                }
        elseif ($big_x == $big_y)
                {
                $thumb_x = $small_x;
                $thumb_y = $small_y;
                }

        elseif ($big_x &gt; $big_y)
                {
                $thumb_x = $small_x;
                $thumb_y = floor($big_y * ($small_x / $big_x));
                }

        elseif ($big_x &lt; $big_y)
                {
                $thumb_x = floor($big_x * ($small_y / $big_y))+4;
                $thumb_y = $small_y;
                }

        if ($textsize==0)
                {
                if ($cfg&#091;'th_amode'&#093;=='GD1')
                        { $new = imagecreate($thumb_x+$bordersize*2, $thumb_y+$bordersize*2); }
                else
                        { $new = imagecreatetruecolor($thumb_x+$bordersize*2, $thumb_y+$bordersize*2); }

                $background_color = imagecolorallocate ($new, $bgcolor&#091;0&#093;, $bgcolor&#091;1&#093; ,$bgcolor&#091;2&#093;);
                imagerectangle ($new, 0,0, $thumb_x+$bordersize*2, $thumb_y+$bordersize*2, $background_color);

                if ($cfg&#091;'th_amode'&#093;=='GD1')
                        { imagecopyresized($new, $source, $bordersize, $bordersize, 0, 0, $thumb_x, $thumb_y, $big_x, $big_y); }
                else
                        { imagecopyresampled($new, $source, $bordersize, $bordersize, 0, 0, $thumb_x, $thumb_y, $big_x, $big_y); }

                }
   else
                {
                if ($cfg&#091;'th_amode'&#093;=='GD1')
                        { $new = imagecreate($thumb_x+$bordersize*2, $thumb_y+$bordersize*2+$textsize*3.5+6); }
                else
                        { $new = imagecreatetruecolor($thumb_x+$bordersize*2, $thumb_y+$bordersize*2+$textsize*3.5+7); }
                $background_color = imagecolorallocate ($new, $bgcolor&#091;0&#093;, $bgcolor&#091;1&#093; ,$bgcolor&#091;2&#093;);
                imagerectangle ($new, 0,0, $thumb_x+$bordersize*2-1, $thumb_y+$bordersize*2+$textsize*3.5+6, $background_color);
                $text_color = imagecolorallocate ($new, $textcolor&#091;0&#093;,$textcolor&#091;1&#093;,$textcolor&#091;2&#093;);

                if ($cfg&#091;'th_amode'&#093;=='GD1')
                        { imagecopyresized($new, $source, $bordersize, $bordersize, 0, 0, $thumb_x, $thumb_y, $big_x, $big_y); }
                else
                        {
                        imagecopyresampled($new, $source, $bordersize, $bordersize, 0, 0, $thumb_x, $thumb_y, $big_x, $big_y);
                        }

//                imagestring ($new, $textsize, $bordersize, $thumb_y+$bordersize+2, $filen, $text_color);
                         imagestring ($new, $textsize, $bordersize+1, $thumb_y+$bordersize+$textsize, &quot; &quot;.$big_x.&quot;x&quot;.$big_y.&quot; &quot;.$fsize.&quot;kb&quot;, $text_color);
                        }

        if ($extension=='png')
                { imagepng($new, $img_small);  }
        else
                { imagejpeg($new, $img_small, $jpegquality); }

        imagedestroy($new);
        imagedestroy($source);
        return;
        }
</pre></div></div></div>  Там, же, я предлагал настоящую панораму, с геометрическими искажениями и вращением панорамы, я, использовал функцию из <a href="http://www.pixaround.com/" rel="nofollow">http://www.pixaround.com/</a> - но оказалось не актуально]]></description>
			<pubDate>Do, 30 Sep 2010 03:56:18 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26394]]></link>
		</item>
		<item>
			<title>terracota</title>
			<description><![CDATA[Так все-таки «это дело несколько лишних строк» или «для твоего случая действительно разумно использовать див/фон»?<br />
<br />
Еще раз повторюсь, что я не программист и не могу написать эти самые «несколько лишних строк».]]></description>
			<pubDate>Do, 30 Sep 2010 03:55:47 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26393]]></link>
		</item>
		<item>
			<title>Kort</title>
			<description><![CDATA[Неправда. Добавить кроп -- это дело несколько лишних строк. Что касается использования изображения в качестве фона в диве -- это html/css-безумие, которое мало того, что сильно наворачивает html-код, так еще и не всегда подходит. Мы имеем опыт создания галерей через связку PFS - jQuery, и могу сказать что там и так хватает дивов.<br />
Что касается приоритетов, то 30 первых попавшихся сайтов на выбор гарантированно не будут иметь форума, зато на главной будет подборка аккуратных квадратных фликровских миниатюр.<br />
Alex3000: я не против отключабельности, хотя задача миниатюры -- дать представление о полноразмерном фото. Для твоего случая действительно разумно использовать див/фон.]]></description>
			<pubDate>Do, 30 Sep 2010 03:38:42 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26392]]></link>
		</item>
		<item>
			<title>terracota</title>
			<description><![CDATA[Ну, я как-то привык решать задачи наиболее простыми способами <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" /><br />
<br />
А вот то время, что ушло бы на добавление подобной функции (а это ведь сам кроп + админка) я бы лучше потратил на доработку форума. Это будь я программистом. Есть более приоритетные задачи, просто многие не хотят думать <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" />]]></description>
			<pubDate>Do, 30 Sep 2010 02:36:54 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26387]]></link>
		</item>
		<item>
			<title>Sergeich</title>
			<description><![CDATA[А зачем, если можно просто обрезать <img class="aux smiley" src="https://www.cotonti.com/./images/smilies/smile.gif" alt=":)" />]]></description>
			<pubDate>Do, 30 Sep 2010 02:25:38 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26385]]></link>
		</item>
		<item>
			<title>terracota</title>
			<description><![CDATA[<blockquote><a href="https://www.cotonti.com/forums.php?m=posts&amp;p=26376#26376">#</a> <strong>Kort :</strong>
Т.е. кроме ресайза нужен кроп. <br />
</blockquote>
<br />
Хм. А вот здесь я вижу очень простое решение, не требующее кропа как такового: можно просто уменьшать до нужной ширины/высоты и позиционировать внутри контейнера средствами css. Вот как раз то, что на рисунках и будет получаться.]]></description>
			<pubDate>Do, 30 Sep 2010 02:22:57 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26384]]></link>
		</item>
		<item>
			<title>Alex300</title>
			<description><![CDATA[Да, поддерживаю <strong>Kort</strong> в том, что функцию <strong>sed_createthumb</strong> пора пересмореть. Этот вопрос мной поднимался и ранее, но остался без ответа....<br />
<br />
Что мы имеем сейчас:<br />
<br />
В админке в настройках PFS опция &quot;Приоритет размеров миниатюр (thumbnails) : &quot; имеет только 2 варианта - &quot;по ширине&quot; и &quot;по Высоте&quot;.<br />
<br />
&quot;По ширине&quot; - изображение масштабируется так, чтобы ширина была равна значению параметра &quot;Ширина миниатюры, px&quot;, высота - как получится при сохранении пропорций картинки.<br />
Аналогично по Высоте - изображение масштабируется так, чтобы высота была равна значению параметра &quot;Высота миниатюры, px&quot;, ширина как получится при сохранении пропорций картинки<br />
<br />
Что хотелось бы видеть:<br />
<br />
<strong>Кроп</strong> - <strong>необходим</strong> для решения некоторых задач. Должен отключаться из админки. Например т.к. я занимаюсь фотографией - то кроп в моей фотогалерее зло - т.к. срезает часть нужной информации с фотографии.<br />
<br />
Третий параметр в приорететах: &quot;<strong>Не более указанных размеров</strong>&quot;, чтобы миниатюра вписывалсь в указанные ограничения по ширине и высоте. <br />
<br />
Опциональное создание <strong>рамки для превью</strong>. Чтобы создавалась рамка, со сторонами равными &quot;Ширина миниатюры, px&quot; и &quot;Высота миниатюры, px&quot; соответственно и в нее вписывалась загруженная картинка. Таким образом полученная превьюшка, чтобы имела размер равный обоим параметрам по длине и ширине.<br />
<br />
&quot;Не более указанных размеров&quot; и рамка могут выгладеть так:<br />
<br />
<a href="http://portal30.ru/User_Files/a-n_Files/image/photo-gal/wedding_2009/georgi_victoria/ico/52.jpg" rel="nofollow"><img src="http://portal30.ru/User_Files/a-n_Files/image/photo-gal/wedding_2009/georgi_victoria/ico/52.jpg" alt="" class="scale" /></a><br />
<br />
<a href="http://portal30.ru/User_Files/a-n_Files/image/photo-gal/wedding_2009/georgi_victoria/ico/20.jpg" rel="nofollow"><img src="http://portal30.ru/User_Files/a-n_Files/image/photo-gal/wedding_2009/georgi_victoria/ico/20.jpg" alt="" class="scale" /></a><br />
<br />
Соответственно, это позволит формировать еще и такие фотогалереи: <a href="http://portal30.ru/list.php?c=wedding_photo_2009" rel="nofollow">http://portal30.ru/list.php?c=wedding_photo_2009</a><br />
<br />
Также было бы здорово иметь возможность уменьшать загружаемые в PSF изображения (не миниатюры) до заданных размеров и ставить Watermark]]></description>
			<pubDate>Do, 30 Sep 2010 02:03:03 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26383]]></link>
		</item>
		<item>
			<title>Sergeich</title>
			<description><![CDATA[а у меня в седе сделана обрезка, там ничего сложного в принципе.<br /><br /><b>Добавлено 1 Минута спустя:</b><br /><br />Согласен, что можно ввести обрезку, но и текущую схему оставить. Оптимальным было бы дать возможность юзеру выбирать что конкретно резать (хотя это плагином лучше делать).]]></description>
			<pubDate>Do, 30 Sep 2010 00:14:56 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26379]]></link>
		</item>
		<item>
			<title>Kort</title>
			<description><![CDATA[До сих пор как-то не до этого было, а счас всплыла непонятность работы sed_createthumb. Чтобы не объяснять долго, вот как это должно быть:<br />
<a href="https://www.cotonti.com/datas/users/th1_183.png"><img src="https://www.cotonti.com/datas/thumbs/th1_183.png" alt="" class="scale" /></a> <a href="https://www.cotonti.com/datas/users/th2_183.png"><img src="https://www.cotonti.com/datas/thumbs/th2_183.png" alt="" class="scale" /></a><br />
Т.е. кроме ресайза нужен кроп. А приоритеты высоты или ширины -- серьезный пережиток ldu/sed, связанный с нерациональным и малопродуктивным использованием миниатюр в тексте страницы, и который мешает создавать пропорционально-независимые красивые фотогалереи.]]></description>
			<pubDate>Mi, 29 Sep 2010 23:42:49 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/de/forums?m=posts&q=5939&d=0#post26376]]></link>
		</item>
	</channel>
</rss>