• Модуль: 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;
}