/** * Print the image as an ImageWorkshop object * * @return ImageWorkshop $bgLayer */ public function paintImage() { // Image Settings $width = 700; $height = 700; $bgColor = 'FFC4C6'; $fontDirectory = public_path('assets/fonts/'); // Border Settings $border = 9; $borderColor = 'FFFFFF'; // Recipient Settings $toColor = 'f51e6b'; $toFontSize = 25; $toGreeting = 'Dear'; // Sender Settings $fromColor = 'f51e6b'; $fromFontSize = 16; $fromMessage = 'your secret crush'; // Message Settings $message = $this->parseMessage($this->message); $msgColor = 'FFFFFF'; $msgFontSize = 26; // Initialise Layers $bgLayer = ImageWorkshop::initVirginLayer($width, $height, $bgColor); // Footer $footerLayer = ImageWorkshop::initVirginLayer($bgLayer->getWidth(), $bgLayer->getHeight()); $footerBird = ImageWorkshop::initFromPath(public_path('assets/img/shareable/footer-bird.png')); $footerFrom = ImageWorkshop::initTextLayer(strtoupper($fromMessage), $fontDirectory . 'Proxima_Nova/PROXIMANOVA-SEMIBOLD.OTF', $fromFontSize, $fromColor, 0); // Border $borderLayer = ImageWorkshop::initVirginLayer($bgLayer->getWidth(), $bgLayer->getHeight()); $hBorder = ImageWorkshop::initVirginLayer($width, $border, $borderColor); $vBorder = ImageWorkshop::initVirginLayer($border, $height, $borderColor); // Recipient $toLayer = ImageWorkshop::initVirginLayer($bgLayer->getWidth(), $bgLayer->getHeight()); $toText = ImageWorkshop::initTextLayer(strtoupper($toGreeting . ' ' . $this->recipient), $fontDirectory . 'Proxima_Nova/PROXIMANOVA-REGULAR.OTF', $toFontSize, $toColor, 0, $borderColor); $toBackground = ImageWorkshop::initVirginlayer($toText->getWidth() + $toFontSize * 2, $toFontSize * 2, $borderColor); $toLeftBorder = ImageWorkshop::initFromPath(public_path('assets/img/shareable/to-bookend-left.png')); $toRightBorder = ImageWorkshop::initFromPath(public_path('assets/img/shareable/to-bookend-right.png')); // Message $msgLayer = ImageWorkshop::initVirginLayer($bgLayer->getWidth(), $bgLayer->getHeight()); $msgText = ImageWorkshop::initTextLayer(strtoupper($message), $fontDirectory . 'Proxima_Nova/PROXIMANOVA-SEMIBOLD.OTF', $msgFontSize, $msgColor, 0); // Add Layers // Recipient $toLayer->addLayer(1, $toBackground, 0, 100 - $toFontSize / 2, 'MT'); $toLayer->addLayer(2, $toText, 0, 100, 'MT'); $toLayer->addLayer(3, $toLeftBorder, 0 - ($toBackground->getWidth() / 2 + $toLeftBorder->getWidth() / 2), 100 - $toFontSize / 2, 'MT'); $toLayer->addLayer(3, $toRightBorder, 0 - 1 + ($toBackground->getWidth() / 2 + $toLeftBorder->getWidth() / 2), 100 - $toFontSize / 2, 'MT'); // Add Message $msgLayer->addLayer(1, $msgText, 0, -50 + $msgText->getHeight() / (substr_count($message, "\n") + 1), 'MM'); // Add Borders $borderLayer->addLayer(1, $hBorder, 0, 0); $borderLayer->addLayer(1, $hBorder, 0, 0, 'LB'); $borderLayer->addLayer(1, $vBorder, 0, 0); $borderLayer->addLayer(1, $vBorder, 0, 0, 'RT'); // Add Footer $footerLayer->addLayer(1, $footerBird, 0, 0, 'MB'); $footerLayer->addLayer(1, $footerFrom, $fromFontSize * 5.5, $fromFontSize * 5, 'RM'); // Create Image $bgLayer->addLayer(1, $footerLayer); $bgLayer->addLayer(2, $toLayer); $bgLayer->addLayer(2, $msgLayer); $bgLayer->addLayer(3, $borderLayer); // Resize $bgLayer->resizeInPixel(440, null, true); return $bgLayer; }