• Модуль: faceid
  • Путь к файлу: ~/bitrix/modules/faceid/lib/users.php
  • Класс: BitrixFaceidUsersTable
  • Вызов: UsersTable::indexUser
static function indexUser($user)
{
	if (!static::checkTimemanEnabled($user['ID']))
	{
		return false;
	}

	// add new face
	$file = CFile::MakeFileArray($user['PERSONAL_PHOTO']);
	$io = CBXVirtualIo::GetInstance();

	// handle b24 remote files
	$filePath = $io->GetPhysicalName($file['tmp_name']);

	if ($file['type'] == 'image/jpeg')
	{
		$imageContent = $io->GetFile($filePath)->GetContents();
	}
	else
	{
		// convert non-jpeg formats to jpeg
		$fileSizeTmp = CFile::GetImageSize($filePath, true);

		switch ($fileSizeTmp[2])
		{
			case IMAGETYPE_GIF:
				$sourceImage = imagecreatefromgif($filePath);
				break;
			case IMAGETYPE_PNG:
				$sourceImage = imagecreatefrompng($filePath);
				break;
			case IMAGETYPE_BMP:
				$sourceImage = CFile::ImageCreateFromBMP($filePath);
				break;
			default:
				return false;
		}

		ob_start();
		imagejpeg($sourceImage, null, 95);
		$imageContent = ob_get_clean();
	}

	// duplicate image for face database
	$response = FaceId::addUser($imageContent, $user['ID']);

	if (!empty($response['success']) && !empty($response['result']['added']))
	{
		// everything's ok
		return true;
	}
	else
	{
		//'msg' => BitrixFaceIdFaceId::getErrorMessage($response['result']['code'])
		return false;
	}
}