Уважаемые клиенты! До 1 ноября Вы можете купить или продлить подписку со скидкой до 20% Подробнее >>

  • Страница:
  • 1

ТЕМА: Одинаковый водяной знак на разных фотографиях

Одинаковый водяной знак на разных фотографиях 20 сен 2020 17:38 #0

  • Иван Светлый
  • Ушел
  • Новый участник
  • Новый участник
  • Сообщений: 1
  • Спасибо получено: 4
Готовим портал к запуску, настраиваем разделы сайта под себя, тестируем. Решили, что нужно добавлять на фотографии наш водяной знак. В портале за работу с изображениями отвечает плагин SigPlus. У него в расширенных настройках можно включить добавление водяных знаков на все загружаемые фотографии. Включили, работает. Правда, выяснилась, что на разных фотографиях водяной знак смотрится сильно по-разному: на фотографии с шириной в 3000 пикселей знак очень мелкий, на фотографии с шириной в 400 пикселей - очень большой. Если бы на портал фотографии загружали только мы, тогда вопросов бы не было – просто бы перед загрузкой подгоняли бы все фотографии к нужному размеру. Но предполагается, что посетители портала сами будут загружать фотографии. Мы уверены, что большинство посетителей не знает как уменьшать размер фотографий, а те, кто знает, маловероятно, что будут этим заниматься. Поэтому нужно сделать, чтобы водяной знак автоматически был нужных размеров на любых фотографиях.

Здесь есть 2 пути:
1) Подгонять размер водяного знака под размер фотографии.
2) Подгонять размер фотографии под водяной знак.

Учитывая, что на стандартном FullHD-разрешении все-равно все большие фотографии уменьшаются до высоты в 833 пикселя, нет смысла идти по первому пути. Поэтому было решено настроить так, чтобы перед добавлением водяного знака загруженные фотографии уменьшались до 800 пикселей по высоте. Таких настроек в плагине SigPlus не оказалось и пришлось копаться в коде. Выяснилось, что за изменения изображений в SigPlus отвечает файл imagegenerator.php, который лежит в папке /plugins/content/sigplus/core/. В этом файле есть 3 места, в которых прописано добавление водяного знака. Видимо, для разных библиотек свой сценарий. На нашем портале библиотека указана «По умолчанию», поэтом у нас сработали правки в первом месте. У вас, возможно, правки нужно будет делать в другом месте.

Собственно, решение заключается в добавлении 1 строчки кода:
$source_img = imagescale( $source_img, imagesx($source_img)*(800/imagesy($source_img)), 800 );

Функция imagescale принимает 3 параметра: ссылку на фотографию и желаемые размеры по ширине и высоте. И возвращает уже масштабированную фотографию. В нашем случае, фотография просто пересохраняется в исходный файл. Высота указана 800 пикселей, а для ширины высчитывается пропорциональное значение.

Да, в нашем случае этот код нужно было добавить в 640 строку файла imagegenerator.php после следующего кода:

// load image
$source_img = self::imageFromFile($image_path, $orientation);
if (!$source_img) {
return false; // could not create image from file
}

Если у вас используется другая библиотека, то ищите свое место по комментарию
// load watermark image
Спасибо сказали: Александр Новиков, Taldomaleks taldomaleks, Виктор Таран, Лисичанск Ситилисичанск

У Вас нет прав доступа к этому разделу форума

Скорее всего Вы не оплатили или не продлили подписку

У Вас появится доступ к этому разделу форума только при активной подписке на любой тарифный план
  • Страница:
  • 1

Последнее на форуме поддержки

PRO-PORTAL.info - Готовые скрипты порталов на Joomla © 2017 - 2020 г. Все права защищены.

Наш городской портал на CMS Joomla принадлежит исключительно и только PRO-PORTAL.info. Любое его распространение, копирование, тиражирование, перепродажа, без согласования с разработчиком, категорически ЗАПРЕЩЕНЫ!

Информация, представленная на сайте, не является публичной офертой