How to add watermark to image on upload in laravel 5.8

I want to add watermark when a user uploads an image on the system. My current code works fine but I need it to work on upload. What do I add to my code?

My WatermarkController file

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Image;

class WaterMarkController extends Controller
{
public function imageWatermark()
{
$img = Image::make(public_path('images/background.png'));

/* insert watermark at bottom-right corner with 10px offset */
$img->insert(public_path('images/watermark.png'), 'bottom-right', 10, 10);

$img->save(public_path('images/background.png'));

$img->encode('png');
$type = 'png';
$new_image = 'data:image/' . $type . ';base64,' . base64_encode($img);

return view('show_watermark', compact('new_image'));
}

public function textWatermark()
{
$img = Image::make(public_path('images/background.jpg'));

$img->text('MyNotePaper', 710, 370, function ($font) {
$font->file(public_path('font/amandasignature.ttf'));
$font->size(30);
$font->color('#f4d442');
$font->align('center');
$font->valign('top');
$font->angle(0);
});

$img->save(public_path('images/new-image.png'));

$img->encode('png');
$type = 'png';
$new_image = 'data:image/' . $type . ';base64,' . base64_encode($img);

return view('show_watermark', compact('new_image'));
}

}

web.php file

Route::get('watermark-image', 'WaterMarkController@imageWatermark');
Route::get('watermark-text', 'WaterMarkController@textWatermark');

Like I said my current code works fine but I need it to work dynamically when a user uploads an image to the system, with this code you would have to configure the watermark.png and the backgroud.jpg to the same directory then access the route watermark-image. please help me on this I am very new to Laravel. Thanks



from Newest questions tagged laravel-5 - Stack Overflow https://ift.tt/3f5389P
via IFTTT

تعليقات

المشاركات الشائعة من هذه المدونة

I am unable to figure out how to create payment collection request, after a form has been submitted in laravel

laravel, mysql transaction not working after failed one time