/** * Обработаем создание нового изображения для дальнейшего скачивания пользователем. */ private function handleSaveImage() { $items = $_POST['items']; $category = $_POST['cat']; $image = $_POST['img']; $fileName = Image::getName($category, $image); $Palette = new RGB(); $Imagine = new Imagine(); $Image = $Imagine->open(IMG_1920x1080 . $fileName); foreach ($items as $item) { $text = $item['text']; $fontSize = $item['fontSize']; $x = $item['relativeX']; $y = $item['relativeY']; $sizedFontSize = $fontSize * 1920 / 500; $sizedX = $this->coeffX * $x; $sizedY = $this->coeffY * $y; $Font = $Imagine->font(FONT_DIR . 'Arial.ttf', $sizedFontSize, $Palette->color($item['color'])); $Position = new Point($sizedX, $sizedY); $angle = rad2deg($item['angle']); $Image->draw()->text($text, $Font, $Position, $angle); } $id = uniqid(); $filePath = IMG_DOWNLOAD . $id . Image::EXTENSION; $Image->save($filePath); header('Content-Type: application/json; charset=utf8'); echo json_encode(['id' => $id], JSON_UNESCAPED_UNICODE); exit; }