- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/component/userprofile/stresslevel/img.php
- Класс: BitrixIntranetComponentUserProfileStressLevelImg
- Вызов: Img::drawImagePowered
protected function drawImagePowered(array $params = [])
{
$canvas = (
isset($params['canvas'])
? $params['canvas']
: false
);
$factor = $this->factor;
if (!$canvas)
{
return false;
}
$imagePath = $this->getImagePartsPath().'/logo_'.BitrixMainLocalizationLoc::getDefaultLang(LANGUAGE_ID).'_4x.png';
if (!file_exists($imagePath))
{
return false;
}
$logoImage = new Imagick($imagePath);
/*
if ($factor > 1)
{
$gradientImage->resizeImage($factor*104, $factor*57, Imagick::FILTER_LANCZOS, 1);
}
*/
$logoGeometry = $logoImage->getImageGeometry();
$imagePowered = new ImagickDraw();
$fontPath = $this->getImagePartsPath().'/OpenSans-Regular.ttf';
if (!file_exists($fontPath))
{
return false;
}
$imagePowered->setFont($fontPath);
$imagePowered->setFillColor('#828B95');
$imagePowered->setFillOpacity(0.65);
$imagePowered->setStrokeAntialias(true);
$imagePowered->setTextAntialias(true);
$imagePowered->setFontSize($factor*10);
$imagePowered->setTextAlignment(Imagick::ALIGN_LEFT);
$poweredText = Loc::getMessage('INTRANET_USER_PROFILE_STRESSLEVEL_IMG_POWERED2');
if ($poweredText <> '')
{
$error = "";
if (LANG_CHARSET != "UTF-8")
{
$poweredText = BitrixMainTextEncoding::convertEncoding($poweredText, LANG_CHARSET, "UTF-8", $error);
if (
!$poweredText
&& !empty($error)
)
{
$this->errorCollection[] = new Error('CONVERT_CHARSET_ERROR');
return null;
}
}
$poweredText = ' '.$poweredText;
$textMetrics = $canvas->queryFontMetrics($imagePowered, $poweredText);
$blockWidth = intval($logoGeometry['width'] + $textMetrics['textWidth']);
}
else
{
$blockWidth = $logoGeometry['width'];
}
$canvasGeometry = $canvas->getImageGeometry();
$canvasWidth = $canvasGeometry['width'];
$left = ($canvasWidth-$blockWidth)/2;
$canvas->compositeImage($logoImage, Imagick::COMPOSITE_DEFAULT, $left, $factor*87);
$imagePowered->annotation(($left+$logoGeometry['width']), $factor*96, $poweredText);
$canvas->drawImage($imagePowered);
return true;
}