Если кому будет интересно написал такой обработчик который налаживает ватермарк на все картинки медиа галереи, много чем не хороший но работает )
[CODE]AddEventHandler("main", "OnProlog", "MyWatermark");
function MyWatermark()
{
$arFilters = Array(
array("name" => "watermark",
"position" => "bottomcenter",
"coefficient" => "5",
"type" => "text",
"text" => "www.site.com",
"color"=>"000000",
"font" => $_SERVER["DOCUMENT_ROOT"]."/font.ttf")
);
CModule::IncludeModule("fileman");
CModule::IncludeModule("main");
CModule::IncludeModule("iblock");
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) {
$pic = CFile::GetFileArray($val["SOURCE_ID"]);
if($pic["DESCRIPTION"]==""):
$h=$val['HEIGHT'];
$w=$val['WIDTH'];
$arFileTmp_p = CFile::ResizeImageGet(
$ar_item[$key],
array("width" => $w, 'height' => $h),
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]),
);
$uploaddir =$_SERVER["DOCUMENT_ROOT"]."/upload/".$val["SUBDIR"]."/".$val["FILE_NAME"];
$uploadfile =$_SERVER["DOCUMENT_ROOT"].$ar_item[$key]["PATH"];
$uploadfile_temp =$_SERVER["DOCUMENT_ROOT"].$ar_item[$key]["PIC"]["SRC"];
if(is_file($uploadfile)){
if (copy($uploadfile_temp, $uploadfile)) {
chmod($uploadfile,0777);//устанавливаем права
global $DB;
$DB->Query("UPD ATE b_file SE T DESCRIPTION='".$DB->ForSql("Картинка # ".$val["ID"], 255)."' WHERE ID=".intval($val["SOURCE_ID"]));
CFile::CleanCache($val["SOURCE_ID"]);
print "Файл ID обновлен!";
}else{
print "Ошибка при копировании!";
}
}
endif;
}
$f = microtime(1) - $n;
}
[/CODE]