Здравствуйте , по ходу работы у меня возникла проблема с ватермарком на все фото на сайте ...
для фото с модуля инфо блоков проблем нет , функция CFile::ResizeImageGet() решает ее...
но как сделать что бы при загрузке картинки в медиагалерею наложивался ватермарк ?
пробую делать такой скрипт
но не хочет перезаписывать $ar_item[$key]["PIC"]["SRC"]; на $ar_item[$key]["PATH"]; ((( и не практично так как после нескольких запусков скрипта ватермарк наложится несколько раз и будет не красиво...
может кто то уже сталкивался с тем что на все фотографии сайта нужно налаживать ватермарк ? не важно это элемент инфоблока или медиа галереи ...
подскажите пожалуйста ...
Заранее спасибо
для фото с модуля инфо блоков проблем нет , функция CFile::ResizeImageGet() решает ее...
но как сделать что бы при загрузке картинки в медиагалерею наложивался ватермарк ?
пробую делать такой скрипт
| Код |
|---|
<? $arFilters = Array(
array("name" => "watermark",
"position" => "right",
"coefficient" => "7",
"type" => "text",
"text" => "watermark",
"color"=>"000000",
"font" => $_SERVER["DOCUMENT_ROOT"]."/font.ttf")
);
CModule::IncludeModule("fileman");
CMedialib::Init();
$n = microtime(1);
/* Получаем список всех коллекций в медиабиблиотеке*/
$ar = CMedialibCollection::GetList(array('arFilter' => array('ACTIVE' => 'Y')));
$ID_ARRAY = array();
foreach($ar as $key=>$val) {
$ID_ARRAY[] = $val['ID'];
}
/* Получаем по всем галереям списки фотографий */
$ar_item = CMedialibItem::GetList(array('arCollections'=>$ID_ARRAY));
foreach($ar_item as $key=>$val) {
//print_r($pic);
$h=$val['HEIGHT']-1;
$w=$val['WIDTH']-1;
$arFileTmp_p = CFile::ResizeImageGet(
$ar_item[$key],
array("width" => $h, 'height' => $w),
BX_RESIZE_IMAGE_PROPORTIONAL,
false,
$arFilters
);
$arSize = getimagesize($_SERVER["DOCUMENT_ROOT"].$arFileTmp_p["src"]);
$ar_item[$key]["PIC"] = array(
'SRC' => $arFileTmp_p["src"],
'WIDTH' => IntVal($arSize[0]),
'HEIGHT' => IntVal($arSize[1]),
);
clearstatcache();
$uploaddir ="/upload/".$val["SUBDIR"]."/";
//echo $uploaddir."<br>" ;
$uploadfile = $ar_item[$key]["PATH"];
$uploadfile_temp = $ar_item[$key]["PIC"]["SRC"];
//echo $uploadfile."<br>" ;
if(is_file($uploadfile)){//проверяем есть ли такой файл
if(@unlink($uploadfile)){//удаляем если есть
if (@move_uploaded_file($uploadfile_temp, $uploadfile)) {
chmod($uploadfile,0777);//устанавливаем права
print "Файл обновлен!";
}else{
print "Ошибка при копировании!";
}
}else{//если файл заблокирован
print "Невозможно удалить файл!";
}
}else{//сли нет то пишем
if (@move_uploaded_file($uploadfile_temp, $uploadfile)) {
chmod($uploadfile,0777);//устанавливаем права
print "Файл записан!";
}else{
print "Ошибка при копировании!";
}
}
}
$f = microtime(1) - $n;
?> |
но не хочет перезаписывать $ar_item[$key]["PIC"]["SRC"]; на $ar_item[$key]["PATH"]; ((( и не практично так как после нескольких запусков скрипта ватермарк наложится несколько раз и будет не красиво...
может кто то уже сталкивался с тем что на все фотографии сайта нужно налаживать ватермарк ? не важно это элемент инфоблока или медиа галереи ...
подскажите пожалуйста ...
Заранее спасибо
