lundi 16 novembre 2020

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



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire