Это было очень веселое и познавательное приключение. Сражение с АПИ битрикса, кровь, кишки, расчлененка. Уберите детей от экранов.
Сначала весь код:
Особенно интересно это место:
Зачем я меняю размер картинки на 1 px?
Все очень просто: функция не добавит водяной знак, если вы не поменяете размер. Просто супер. Пожалуй, эта функция пока занимает первое место в рейтинге тупак года от битрикс.
Сначала весь код:
Код |
---|
function AddWatermarkToWallpaper(&$arFields){ $wallpaperArray = Array(12); //Список блоков с обоями. А вдруг их будет больше? if (in_array($arFields['IBLOCK_ID'], $wallpaperArray)){ $arFilter_WM = Array( array("name" => "watermark", "position" => "br", "size"=>"real", "alpha_level"=>"30", "file"=>$_SERVER['DOCUMENT_ROOT']."/bitrix/templates/games/images/logo_t.png") ); $tmp = Array(); foreach($arFields['PROPERTY_VALUES'] as $key => $value) foreach($value as $key2 => $value2) if($value2["tmp_name"]){ $v = CFile::SaveFile(CFile::MakeFileArray($value2["tmp_name"]), "abc"); //тупак битрикса $arSizeORIG = getimagesize($_SERVER['DOCUMENT_ROOT'].CFile::GetPath($v)); $widthBIG = intval($arSizeORIG[0])-1; $heightBIG = intval($arSizeORIG[0])-1; //конец тупака битрикса $v = CFile::ResizeImageGet($v, Array('width' => $widthBIG, 'height' => $heightBIG), BX_RESIZE_IMAGE_PROPORTIONAL, false, $arFilter_WM); $arFields['PROPERTY_VALUES'][$key][$key2] = CFile::MakeFileArray($v["src"]); } } } |
Особенно интересно это место:
Код |
---|
$arSizeORIG = getimagesize($_SERVER['DOCUMENT_ROOT'].CFile::GetPath($v)); $widthBIG = intval($arSizeORIG[0])-1; $heightBIG = intval($arSizeORIG[0])-1; $v = CFile::ResizeImageGet($v, Array('width' => $widthBIG, 'height' => $heightBIG), BX_RESIZE_IMAGE_PROPORTIONAL, false, $arFilter_WM); |
Зачем я меняю размер картинки на 1 px?
Все очень просто: функция не добавит водяной знак, если вы не поменяете размер. Просто супер. Пожалуй, эта функция пока занимает первое место в рейтинге тупак года от битрикс.