Laravel 11 Add Watermark on Image Example |
Laravel 11 Add Watermark on Image Example |

Laravel 11 Add Watermark on Image Example

Adding a watermark to an image is a common requirement in many web applications to protect images from unauthorized use or to brand them. Laravel 11, with its robust and developer-friendly features, makes it easy to implement such functionalities. In this article, we will go through the process of adding a watermark to an image in Laravel 11 step-by-step.


Before we start, ensure you have the following:

  1. Laravel 11 installed on your system.
  2. Composer installed.
  3. Basic knowledge of Laravel and PHP.

Step 1: Set Up Your Laravel Project

First, create a new Laravel project if you don’t have one already:

composer create-project --prefer-dist laravel/laravel watermark-example

Navigate to the project directory:

cd watermark-example

Step 2: Install Intervention Image Package

We will use the Intervention Image package to handle image processing in Laravel. To install it, run the following command:

composer require intervention/image

Next, add the service provider to your config/app.php file:

'providers' => [
    // Other service providers...

'aliases' => [
    // Other aliases...
    'Image' => Intervention\Image\Facades\Image::class,

Step 3: Create a Controller

Create a new controller for handling image uploads and watermarking:

php artisan make:controller ImageController

Open the newly created ImageController.php file and add the following code:


namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Image;

class ImageController extends Controller
    public function index()
        return view('upload');

    public function upload(Request $request)
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',

        $image = $request->file('image');
        $input['imagename'] = time().'.'.$image->extension();

        $destinationPath = public_path('/images');
        $img = Image::make($image->path());
        $img->insert(public_path('/watermark.png'), 'bottom-right', 10, 10);

        return back()
            ->with('success', 'Image uploaded successfully.')
            ->with('imageName', $input['imagename']);

Step 4: Create Routes

Open the routes/web.php file and add the following routes:

use App\Http\Controllers\ImageController;

Route::get('upload', [ImageController::class, 'index']);
Route::post('upload', [ImageController::class, 'upload'])->name('image.upload');

Step 5: Create Blade View

Create a new Blade view file named upload.blade.php in the resources/views directory and add the following code:

<!DOCTYPE html>
    <title>Laravel 11 Add Watermark on Image Example</title>
    <link rel="stylesheet" href="">
<div class="container mt-5">
    <h2>Laravel 11 Add Watermark on Image Example</h2>

    @if ($message = Session::get('success'))
        <div class="alert alert-success">
            <strong>{{ $message }}</strong>
        <div class="row">
            <div class="col-md-4">
                <img src="/images/{{ Session::get('imageName') }}" class="img-fluid"/>

    <form action="{{ route('image.upload') }}" method="POST" enctype="multipart/form-data">
        <div class="form-group">
            <label for="image">Choose Image</label>
            <input type="file" name="image" class="form-control" id="image">
                <div class="alert alert-danger mt-2">{{ $message }}</div>
        <button type="submit" class="btn btn-primary">Upload Image</button>

Step 6: Place the Watermark Image

Make sure you have a watermark image named watermark.png placed in the public directory of your Laravel project. This will be used as the watermark.

Step 7: Testing the Application

Start the Laravel development server:

php artisan serve

Open your web browser and navigate to http://localhost:8000/upload. You should see an upload form. Choose an image and click the “Upload Image” button. If everything is set up correctly, your image will be uploaded with a watermark added to it.


In this article, we have learned how to add a watermark to an image in Laravel 11 using the Intervention Image package. This example can be extended and customized as needed for your specific use case. Happy coding!