Как наложить водяные знаки (ватемарки) на загружаемые изображения в modx revo?

Добрый день, установил расширение в modx revo — gallery для загрузки и вывода галерей с изображениями и хочется сделать наложение на них водяных знаков. Перелопатил поисковую выдачу, нашел кучу решений и ни одно не подошло — не выводятся водяные знаки. Для вывода элементов галереи использую чанк.
<a href="[[+image]]" rel="colorbox" title="[[+description]]">
    <img class="[[+imgCls]]" src="[[+thumbnail]]" alt="[[+name]]" />
</a>
Может кто нибудь сталкивался с этим вопросом?
Виктор
15 февраля 2018, 06:34
modx.pro
5 646
0

Комментарии: 5

Дмитрий Литвинов
15 февраля 2018, 10:06
0
Посмотрите вот эту инструкцию, очень подробно все расписано: https://modx.pro/development/1547/
    Виктор
    16 февраля 2018, 20:08
    0
    Посмотрел, там ссылки на документацию не работают. Попробовал варианты, которые там есть, поставил phpthumbof — ватемарки не накладываются, конкретно применительно к моему варианту можете подсказать.
      Андрей
      17 февраля 2018, 13:09
      0
      Лучше поставить pThumb, работает побыстрее чем phpthumbof.

      Вызов такой:
      [[pthumb? &input=`[[+image_absolute]]` &options=`&w=100&h=100&fltr[]=wmi|путь_к_картинке`]]

      Остальные параметры для wmi есть по ссылке выше. Ну и размер картинки нужный указать.
      Александр Мельник
      18 февраля 2018, 22:19
      0
      Я использовал phpthumbof для этого
      В 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;
        }
        Этот плагин выкладывал Безумкин Василий, вот только не помню где.
        Не забудьте поменять настройки плагина под ваши потребности. Там не только ватермарк накладывается но и ресайз изображения делается. Вы можете оставить только наложения ватермарка.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          5