function createCompositeImage(Request $request, UserEvent $event, $photoFile) { $photo = new Imagick(); $photo->readImageBlob($photoFile); $image = ImageCompositor::create($request, $event, $photo); Storage::put('composites/' . $event->id . '.jpg', $image); return redirect('/'); }
static function composite_paragraph($text, $target, $rect, $multiline) { $draw = new ImagickDraw(); $draw->setFont('Helvetica.ttf'); $draw->setFontSize(72); if ($multiline) { $lines = ImageCompositor::word_wrap($text, 60); } else { $lines = ImageCompositor::word_wrap($text, 500000); } $fm = $target->queryFontMetrics($draw, $lines[0], false); $line_height = 50; while ($fm['textWidth'] > $rect->width) { $draw->setFontSize($draw->getFontSize() - 1); $fm = $target->queryFontMetrics($draw, $lines[0], false); } for ($i = 0; $i < count($lines); $i++) { $draw->setFillColor('black'); $target->annotateImage($draw, $rect->x + 1, $rect->y + 1 + $i * $line_height, 0, $lines[$i]); $draw->setFillColor('white'); $target->annotateImage($draw, $rect->x, $rect->y + $i * $line_height, 0, $lines[$i]); } }