Как наложить водяные знаки (ватемарки) на загружаемые изображения в modx revo?
Добрый день, установил расширение в modx revo — gallery для загрузки и вывода галерей с изображениями и хочется сделать наложение на них водяных знаков. Перелопатил поисковую выдачу, нашел кучу решений и ни одно не подошло — не выводятся водяные знаки. Для вывода элементов галереи использую чанк.
<a href="[[+image]]" rel="colorbox" title="[[+description]]">
<img class="[[+imgCls]]" src="[[+thumbnail]]" alt="[[+name]]" />
</a>
Может кто нибудь сталкивался с этим вопросом? Комментарии: 5
Посмотрите вот эту инструкцию, очень подробно все расписано: https://modx.pro/development/1547/
Посмотрел, там ссылки на документацию не работают. Попробовал варианты, которые там есть, поставил phpthumbof — ватемарки не накладываются, конкретно применительно к моему варианту можете подсказать.
Лучше поставить pThumb, работает побыстрее чем phpthumbof.
Вызов такой:
Остальные параметры для wmi есть по ссылке выше. Ну и размер картинки нужный указать.
Вызов такой:
[[pthumb? &input=`[[+image_absolute]]` &options=`&w=100&h=100&fltr[]=wmi|путь_к_картинке`]]
Остальные параметры для wmi есть по ссылке выше. Ну и размер картинки нужный указать.
Я использовал phpthumbof для этого
В phenom это выглядит так
В phenom это выглядит так
{$file['url'] | phpthumbof: "fltr[]=wmi|assets/img/main_logo.png|BL|100" }
Плагин на событие OnFileManagerUpload
Не забудьте поменять настройки плагина под ваши потребности. Там не только ватермарк накладывается но и ресайз изображения делается. Вы можете оставить только наложения ватермарка.
<?php
// проверяем нужное событие
if ($modx->event->name != 'OnFileManagerUpload') {return;}
// подключаем phpthumb
require_once MODX_CORE_PATH.'model/phpthumb/phpthumb.class.php';
// параметры загружаемого файла
$file = $modx->event->params['files']['file'];
$directory = $modx->event->params['directory'];
// получаем media source
$ms = $modx->event->params['source'];
if($ms == null){
return;
}
// настройки media source
$msProperties = $ms->get('properties');
$directory = $msProperties['basePath']['value'].$directory;
// на всякий случай проверяем наличие // и заменяем на /
$directory = str_replace('//', '/', $directory);
// настройки плагина
$config = array(
$directory => array(
'src' => array('w' => 1280,'h' => 1024,'zc' => 0,'q' => 80, 'fltr' => 'wmi|/watermark/logo.png|BR|50|5'),
),
);
// смотрим, что при загрузке не возникло ошибок
if ($file['error'] != 0) {
//fwrite($handle,"Ошибка при загрузке файлов \n");
return;
}
$name = $file['name'];
$extensions = explode(',', $modx->getOption('upload_images'));
// проверям, что наша категория задана в настройках плагина
if (array_key_exists($directory, $config)) {
$config = $config[$directory];
} else {
return;
}
// путь к файлу, имя файла, расширение
$filename = MODX_BASE_PATH.$directory.$name;
$def_fn = pathinfo($name, PATHINFO_FILENAME);
$ext = pathinfo($name, PATHINFO_EXTENSION);
// проверяем, что расширение файла задано в настройках MODX, как изображение
if (in_array($ext, $extensions)) {
$sizes = getimagesize($filename);
$format = substr($sizes['mime'],6);
// бежим по всем полям массива с конфигом
foreach($config as $imgKey =>$imgConfig){
$options = '';
if($imgKey == 'src'){
// для ключа src имя файла совпадает с исходным
$imgName = $filename;
} else {
// формируем имя файла
$imgName = MODX_BASE_PATH.$directory.$def_fn.$imgKey.'.'.$ext;
}
// создаем объект phpThumb..
$phpThumb = new phpThumb();
// ..и задаем параметры
$phpThumb->setSourceFilename($filename);
foreach ($imgConfig as $k => $v) {
$phpThumb->setParameter($k, $v);
}
// генерируем файл
if ($phpThumb->GenerateThumbnail()) {
if ($phpThumb->RenderToFile($imgName)) {
//$source->renameObject($imgName, $newName);
// устанавливаем права на файл, это опционально, зависит от сервера
//chmod($imgName, 0666);
}
}
}
} else {
return;
}
Этот плагин выкладывал Безумкин Василий, вот только не помню где.Не забудьте поменять настройки плагина под ваши потребности. Там не только ватермарк накладывается но и ресайз изображения делается. Вы можете оставить только наложения ватермарка.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.