public function generateImagesFromLetter(ImageStrategy $strategy, string $letter) : ImageCollection
 {
     $palette = $this->colorsService->getRandomPalette();
     $bgColor = $palette->getBackground();
     $textColor = $palette->getForeground();
     $size = max($strategy->getSizes());
     $fontSize = (int) $size * 0.8;
     $img = $this->imageManager->canvas($size, $size, $bgColor->getHexCode());
     $char = strtoupper($strategy->getLetter());
     $fontPath = $this->fontPath;
     $img->text($char, (int) $size / 2, (int) $size / 2, function (Font $font) use($fontSize, $textColor, $fontPath) {
         $font->file($fontPath);
         $font->size($fontSize);
         $font->color($textColor->getHexCode());
         $font->align('center');
         $font->valign('center');
     });
     return $this->generateImagesFromSource($strategy, $img);
 }
 public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface
 {
     return $responseBuilder->setJson(['palettes' => array_map(function (Palette $palette) {
         return $palette->toJSON();
     }, $this->colorsService->getPalettes())])->setStatusSuccess()->build();
 }
 public function __invoke() : array
 {
     return ['config' => ['palettes' => array_map(function (Palette $palette) {
         return $palette->toJSON();
     }, $this->colorService->getPalettes())]];
 }