<?php

require_once 'instantavatar.php';
header('content-type: image/png');
$ia = new InstantAvatar('Comfortaa-Regular.ttf', 18, 40, 40, 2, 'glass.png');
$ia->generateRandom('ia');
$ia->passThru();
 /**
  * Generate an avatar image
  * @param User $oUser
  * @return string Relative URL to avatar image
  */
 public function generateAvatar($oUser, $aParams = array(), $bOverwrite = false)
 {
     $iAvatarDefaultSize = BsConfig::get('MW::Avatars::DefaultSize');
     $iAvatarHeight = isset($aParams['height']) ? $aParams['height'] : $iAvatarDefaultSize;
     $iAvatarWidth = isset($aParams['width']) ? $aParams['width'] : $iAvatarDefaultSize;
     $iUserId = $oUser->getId();
     $sUserName = $oUser->getName();
     $sUserRealName = $oUser->getRealName();
     $sAvatarFileName = self::$sAvatarFilePrefix . $iUserId . ".png";
     # TODO: Check if this is more expensive than a simple file_exists()
     $oFile = BsFileSystemHelper::getFileFromRepoName($sAvatarFileName, 'Avatars');
     # If avatar doesn't yet exit, create one
     if (!$oFile->exists() || $bOverwrite) {
         $sGenerator = BsConfig::get('MW::Avatars::Generator');
         switch ($sGenerator) {
             case 'Identicon':
                 require_once __DIR__ . "/includes/lib/Identicon/identicon.php";
                 $sRawPNGAvatar = generateIdenticon($iUserId, $iAvatarDefaultSize);
                 # non-random
                 break;
             case 'InstantAvatar':
                 require_once __DIR__ . "/includes/lib/InstantAvatar/instantavatar.php";
                 $iFontSize = round(18 / 40 * $iAvatarDefaultSize);
                 $oIA = new InstantAvatar(__DIR__ . '/includes/lib/InstantAvatar/Comfortaa-Regular.ttf', $iFontSize, $iAvatarDefaultSize, $iAvatarDefaultSize, 2, __DIR__ . '/includes/lib/InstantAvatar/glass.png');
                 if ($sUserRealName) {
                     preg_match_all('#(^| )(.)#u', $sUserRealName, $aMatches);
                     $sChars = implode('', $aMatches[2]);
                     if (mb_strlen($sChars) < 2) {
                         $sChars = $sUserRealName;
                     }
                 } else {
                     $sChars = $sUserName;
                 }
                 $oIA->generateRandom($sChars);
                 # random
                 $sRawPNGAvatar = $oIA->getRawPNG();
                 break;
             default:
                 throw new MWException('FATAL: Avatar generator not found!');
                 break;
         }
         $oStatus = BsFileSystemHelper::saveToDataDirectory($sAvatarFileName, $sRawPNGAvatar, $this->mInfo[EXTINFO::NAME]);
         if (!$oStatus->isGood()) {
             throw new MWException('FATAL: Avatar could not be saved!');
         }
         # found no way to regenerate thumbs. just delete thumb folder if it exists
         $oStatus = BsFileSystemHelper::deleteFolder('Avatars' . DS . 'thumb' . DS . $sAvatarFileName, true);
         if (!$oStatus->isGood()) {
             throw new MWException('FATAL: Avatar thumbs could no be deleted!');
         }
         $oFile = BsFileSystemHelper::getFileFromRepoName($sAvatarFileName, 'Avatars');
     }
     $sNewUserImageSrc = $oFile->createThumb($iAvatarWidth, $iAvatarHeight);
     return $sNewUserImageSrc;
 }