Цитата |
---|
scifi пишет:
Внимание, вопрос: как применить функцию CFile::ResizeImageGet зная только путь временной картинки и как потом заменить ее на картинку с водяным знаком? |
Код |
---|
CFile::ResizeImageGet(CFile::MakeFileArray($tmp[0]), array('width'=>150, 'height'=>150), BX_RESIZE_IMAGE_PROPORTIONAL, true); |
Код |
---|
$tmp = Array(); foreach($arFields['PROPERTY_VALUES'] as $key => $value) foreach($value as $key2 => $value2) if($value2["tmp_name"]) $tmp[] = $value2; //вот тут теперь будет та же структура, что и после MakeFileArray if($tmp[0]){ //это просто для отладки тут так сделано $v = CFile::ResizeImageGet($tmp[0], array('width'=>150, 'height'=>150), BX_RESIZE_IMAGE_PROPORTIONAL, true); //$v = CFile::ResizeImageGet(CFile::MakeFileArray($tmp[0]), array('width'=>150, 'height'=>150), BX_RESIZE_IMAGE_PROPORTIONAL, true); file_put_contents($_SERVER['DOCUMENT_ROOT']."/log.txt", print_r($v, true)); } |
Код |
---|
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); |