Это было очень веселое и познавательное приключение. Сражение с АПИ битрикса, кровь, кишки, расчлененка. Уберите детей от экранов.
Сначала весь код:
Особенно интересно это место:
Зачем я меняю размер картинки на 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?
Все очень просто: функция не добавит водяной знак, если вы не поменяете размер. Просто супер. Пожалуй, эта функция пока занимает первое место в рейтинге тупак года от битрикс.