metadata->get(['app', 'avatars', 'colorList']) ?? $this->colorList; $index = intval($x * count($colorList) / 128); return $colorList[$index]; } public function run(Request $request) { $userId = $request->get('id'); $size = $request->get('size') ?? null; if (!$userId) { throw new BadRequest(); } $user = $this->entityManager->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'); if (!empty($id)) { $this->show($id, $size, true); } 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->metadata->get(['app', 'avatars', 'systemColor']) ?? $this->systemColor; } $imgContent = $identicon->getImageData($hash, $width, $color); echo $imgContent; exit; } } } }