Вывод водяных знаков на изображениях из свойств элемента Битрикс

  • 1248
  • 1
   
Разделы

Я не претендую на право называться автором всей размещенной здесь информации, так как некоторые моменты были заимствованы в доступных источниках и немного переработаны для удобства пользования.


По возможности указываю ссылки на источники.


Копируйте, комментируйте, переделывайте, пользуйтесь. Кому не жалко, оставляйте ссылку на источник.

Частный вебмастер по разработке сайтов на 1С Битрикс и WordPress

В дополнение к заметке о обрезке картинок на лету, рассмотрим вывод водяных знаков на изображениях из дополнительных свойств элемента. Все довольно просто, достаточно при выводе картинок методом Cfile::ResizeImageGet добавить массив с описанием параметров водяного знака.

Пример массива параметров водяного знака:

<?
$arWaterMark = Array(
array(
"name" => "watermark",
"position" => "br", // Положение
"type" => "image",
"size" => "real", // размер
"file" => $_SERVER['DOCUMENT_ROOT']. '/upload/watermark/501.png', // Путь к картинке
'alpha_level' => 70, // прозрачность
)
);
?>

Допустимые параметры массива водяного знака и описания:

<? $arWaterMark = array(
array(
"name" => "watermark",
"position" => "bc", // (доступные варианты tl|tc|tr|ml|mc|mr|bl|bc|br)
"type" => "image", // (доступные варианты "image|text")
"size" => "real", // (доступные варианты big|medium|small|real; real доступен только для type=image )
"coefficient" => "1", // (альтернатива параметру size. В случае текстового варианта - от 1 до 7, по крайней мере так в исходниках; для картинок 0.1 до 1)
"fill" => "exact", // (доступные варианты exact|resize|repeat )
"file" => $_SERVER["DOCUMENT_ROOT"]."/watermark.png", // (абсолютный путь до картинки с водяным знаком)
"text" => "Водяной знак!", // (текст водяного знака )
"color" => "ff0000", // (hex формат цвета текста )
"font" => $_SERVER["DOCUMENT_ROOT"]."/arial.ttf", // (путь до файла шрифта в формате .ttf)
"use_copyright" => "Y" // (использовать ли знак копирайта перед текстом)
)
);?>
Внимание!

  • Если водяной знак не появляется проверьте правильность указанного пути к картинке

Примеры вывода изображений из свойства элемента с нанесенным водяным знаком

<? // вывод картинок с водяными знаками
foreach ($arResult["PROPERTIES"]["ATT_IMG"]["VALUE"] as $file): ?>
<img src="<?= CFile::ResizeImageGet($file, Array(), BX_RESIZE_IMAGE_PROPORTIONAL_ALT, true, $arWaterMark)['src'] ?>"
alt="">
<? endforeach ?>



<? // вывод картинок с водяными знаками для fancybox
foreach ($arResult["PROPERTIES"]["ATT_IMG"]["VALUE"] as $file): ?>
<a class="media-detail-item"
href="<?= CFile::ResizeImageGet($file, Array(), BX_RESIZE_IMAGE_PROPORTIONAL_ALT, true, $arWaterMark)['src'] ?>"
data-fancybox="gallery">
<img src="<?= CFile::ResizeImageGet($file, Array("width" => 450, "height" => 450), BX_RESIZE_IMAGE_PROPORTIONAL_ALT, false)['src'] ?>"
alt="">
</a>
<? endforeach ?>

Комментарии

Комментарий отправлены на валидацию!