• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/internals/controller.php
  • Класс: BitrixDiskInternalsController
  • Вызов: Controller::resizeImage
protected function resizeImage($fileData, $objectId): array
{
	if (TypeFile::shouldTreatImageAsFile($fileData))
	{
		return $fileData;
	}

	$width = $this->request->getQuery('width');
	$height = $this->request->getQuery('height');

	if ($width > 0 || $height > 0)
	{
		$signature = $this->request->getQuery('signature');
		if (!$signature)
		{
			$this->sendJsonInvalidSignResponse('Empty signature');
		}
		if (!ParameterSigner::validateImageSignature($signature, $objectId, $width, $height))
		{
			$this->sendJsonInvalidSignResponse('Invalid signature');
		}

		$resizeType = $this->request->getQuery('exact') === 'Y' ? BX_RESIZE_IMAGE_EXACT : BX_RESIZE_IMAGE_PROPORTIONAL;
		$tmpFile = CFile::resizeImageGet(
			$fileData,
			['width' => $width, 'height' => $height],
			$resizeType,
			true,
			false,
			true
		);
		$fileData['FILE_SIZE'] = $tmpFile['size'];
		$fileData['SRC'] = $tmpFile['src'];
	}

	return $fileData;
}