cotonti.com : Генерация миниатюр https://www.cotonti.com Останні повідомлення в темі Cotonti en Wed, 27 May 2026 17:27:27 -0000 Alex300 Четыре способа создания миниатюр:

Третий параметр в приорететах: "Не более указанных размеров", чтобы миниатюра вписывалсь в указанные ограничения по ширине и высоте. Без обрезания картинки(код 2-мя постами выше). Тут можно генерировать имниатюру с фоном, чтобы не добавлять лишние DIV'ы в страницу, но можно и без него.

Четвертый: образование миниатюры "Кропом", как в первом посте у Kort, урезая их до заданного соотношения сторон.

Первые 2 лучше оставить для поддержки старых сайтов.

И раз уж будет правится эта функция:

то в начало тела этой функции предлагаю добавить конструкцию типа:

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;
}

Это даст возможность кому необходимо создать свои функции создания миниатюр не хакая ядро. По аналогии с парсингом.

И, если добавлять в транк эти новшества, думаю имеет смысл их добавить в Genoa 0.6.11 - в очередную версию джижка, не откладывая до Siena.

Добавлено 25 дней спустя:

Вот так решил вопрос с генерацией миниатюр так, чтобы они не выходили за указанные размеры. Также предлагаемые ниже код уменьшает загружаемое изображение до заданных размеров и ставит "водяной знак".

Для этого в файл system/functions.custom.php добавить следующий код


и создать такой плагин:

<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=portal30
Part=pfs.upload.moved
File=portal30.pfs.upload.moved
Hooks=pfs.upload.moved
Tags=
Minlevel=0
Order=10
[END_SED_EXTPLUGIN]
==================== */
// *********************************************
// *    Cotonti:  "Portal30"                   *
// *     Уменьшим картинку                     *
// *             и поставим ватермарк          *
// *        http://portal30.ru                 *
// *                                           *
// *            © Alex & Naty Studio  2010     *
// *********************************************

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

// Обработка загруженного изображения
if (in_array($f_extension, $gd_supported) && file_exists($cfg['pfs_dir_user'].$u_newname)){
	@unlink($cfg['th_dir_user'].$u_newname);
	
	process_uploaded_imgage($cfg['pfs_dir_user'].$u_newname, $p30_img_width, $p30_img_heght, $f_extension, $p30_jpegquality, $p30_watermark, true, $cfg['th_dir_user'].$u_newname); 
	$u_size = filesize($cfg['pfs_dir_user'].$u_newname);
	// Превью создали, переделывать не нужно.
	$gd_supported = array();
	
}
?>
]]>
Сб, 02 Жов 2010 19:47:39 -0000
Kort Миниатюра в идеале должна генериться в ручном режиме через JS. Но идеалы в котонти реализуются плагинами, поэтому остаются 3 положения.
Мое сугубо личное мнение -- приоритет высоты и приоритет ширины можно и нужно удалить. Но, возможно, владельцы сайтов с 1000+ страницами, где картинки размещены в строку в тексте страницы, будут против.]]>
Сб, 02 Жов 2010 18:37:10 -0000
Alex300 Да и под кроп действительно не сложно доработать.]]> Thu, 30 Вер 2010 05:08:13 -0000 Sergey
elseif ($dim_priority=="Width")
т.е. устанавливаем как подгоняем: только по высоте или только по ширине =="Width" смотрим тот, старый мой вариант
if ($big_x == $big_y)
                {
                $thumb_x = $small_x;
                $thumb_y = $small_y;
                }

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

        elseif ($big_x < $big_y)
                {
                $thumb_x = floor($big_x * ($small_y / $big_y))+4;
                $thumb_y = $small_y;
                }
у меня получалось то, что и изображено в первом посте - просто, тогда я не правильно понял, как пользоваться той установкой, ну и подправил
Соответственно такие галереи
http://portal30.ru/list.php?c=wedding_photo_2009
и получаются]]>
Thu, 30 Вер 2010 04:54:30 -0000
Kort одинаковых размеров при помощи подрезки.]]> Thu, 30 Вер 2010 04:46:45 -0000 Sergey Thu, 30 Вер 2010 04:34:32 -0000 Kort # terracota : Так все-таки «это дело несколько лишних строк» или «для твоего случая действительно разумно использовать див/фон»?

Еще раз повторюсь, что я не программист и не могу написать эти самые «несколько лишних строк».
Я говорю про подрезку изображений под фиксированные размеры -- чтобы не было "частокола" при выводе изображений в ряд. Если кому-то в миниатюре нужно сохранять внешний вид изображения за счет фона, это можно сделать за счет "умной" подрезки или средствами html/css.
И здесь никто не говорит о том, что изменять sed_createthumb должен terracota.]]>
Thu, 30 Вер 2010 04:05:27 -0000
Sergey Там, же, я предлагал настоящую панораму, с геометрическими искажениями и вращением панорамы, я, использовал функцию из http://www.pixaround.com/ - но оказалось не актуально]]> Thu, 30 Вер 2010 03:56:18 -0000 terracota
Еще раз повторюсь, что я не программист и не могу написать эти самые «несколько лишних строк».]]>
Thu, 30 Вер 2010 03:55:47 -0000
Kort Что касается приоритетов, то 30 первых попавшихся сайтов на выбор гарантированно не будут иметь форума, зато на главной будет подборка аккуратных квадратных фликровских миниатюр.
Alex3000: я не против отключабельности, хотя задача миниатюры -- дать представление о полноразмерном фото. Для твоего случая действительно разумно использовать див/фон.]]>
Thu, 30 Вер 2010 03:38:42 -0000
terracota

А вот то время, что ушло бы на добавление подобной функции (а это ведь сам кроп + админка) я бы лучше потратил на доработку форума. Это будь я программистом. Есть более приоритетные задачи, просто многие не хотят думать :)]]>
Thu, 30 Вер 2010 02:36:54 -0000
Sergeich ]]> Thu, 30 Вер 2010 02:25:38 -0000 terracota # Kort : Т.е. кроме ресайза нужен кроп.

Хм. А вот здесь я вижу очень простое решение, не требующее кропа как такового: можно просто уменьшать до нужной ширины/высоты и позиционировать внутри контейнера средствами css. Вот как раз то, что на рисунках и будет получаться.]]>
Thu, 30 Вер 2010 02:22:57 -0000
Alex300 Kort в том, что функцию sed_createthumb пора пересмореть. Этот вопрос мной поднимался и ранее, но остался без ответа....

Что мы имеем сейчас:

В админке в настройках PFS опция "Приоритет размеров миниатюр (thumbnails) : " имеет только 2 варианта - "по ширине" и "по Высоте".

"По ширине" - изображение масштабируется так, чтобы ширина была равна значению параметра "Ширина миниатюры, px", высота - как получится при сохранении пропорций картинки.
Аналогично по Высоте - изображение масштабируется так, чтобы высота была равна значению параметра "Высота миниатюры, px", ширина как получится при сохранении пропорций картинки

Что хотелось бы видеть:

Кроп - необходим для решения некоторых задач. Должен отключаться из админки. Например т.к. я занимаюсь фотографией - то кроп в моей фотогалерее зло - т.к. срезает часть нужной информации с фотографии.

Третий параметр в приорететах: "Не более указанных размеров", чтобы миниатюра вписывалсь в указанные ограничения по ширине и высоте.

Опциональное создание рамки для превью. Чтобы создавалась рамка, со сторонами равными "Ширина миниатюры, px" и "Высота миниатюры, px" соответственно и в нее вписывалась загруженная картинка. Таким образом полученная превьюшка, чтобы имела размер равный обоим параметрам по длине и ширине.

"Не более указанных размеров" и рамка могут выгладеть так:





Соответственно, это позволит формировать еще и такие фотогалереи: http://portal30.ru/list.php?c=wedding_photo_2009

Также было бы здорово иметь возможность уменьшать загружаемые в PSF изображения (не миниатюры) до заданных размеров и ставить Watermark]]>
Thu, 30 Вер 2010 02:03:03 -0000
Sergeich
Добавлено 1 Минута спустя:

Согласен, что можно ввести обрезку, но и текущую схему оставить. Оптимальным было бы дать возможность юзеру выбирать что конкретно резать (хотя это плагином лучше делать).]]>
Thu, 30 Вер 2010 00:14:56 -0000
Kort
Т.е. кроме ресайза нужен кроп. А приоритеты высоты или ширины -- серьезный пережиток ldu/sed, связанный с нерациональным и малопродуктивным использованием миниатюр в тексте страницы, и который мешает создавать пропорционально-независимые красивые фотогалереи.]]>
Ср, 29 Вер 2010 23:42:49 -0000