colorList) / 128); return $this->colorList[$index]; } public function run() { if (empty($_GET['id'])) { throw new BadRequest(); } $userId = $_GET['id']; $user = $this->getEntityManager()->getEntity('User', $userId); if (!$user) { header('Content-Type: image/png'); $img = imagecreatetruecolor(14, 14); imagesavealpha($img, true); $color = imagecolorallocatealpha($img, 127, 127, 127, 127); imagefill($img, 0, 0, $color); imagepng($img); imagecolordeallocate($img, $color); imagedestroy($img); exit; } $id = $user->get('avatarId'); $size = null; if (!empty($_GET['size'])) { $size = $_GET['size']; } if (!empty($id)) { $this->show($id, $size); } else { $identicon = new \Identicon\Identicon(); if (empty($size)) { $size = 'small'; } if (!empty($this->imageSizes[$size])) { $width = $this->imageSizes[$size][0]; header('Cache-Control: max-age=360000, must-revalidate'); header('Content-Type: image/png'); $hash = $userId; $color = $this->getColor($userId); if ($hash === 'system') { $color = $this->systemColor; } $imgContent = $identicon->getImageData($hash, $width, $color); echo $imgContent; exit; } } } }