Saturday, September 21, 2024
Google search engine
HomeLanguagesLaravel 9 Add Text Overlay Watermark on Image Example

Laravel 9 Add Text Overlay Watermark on Image Example

Laravel 9 add watermark to image; In this tutorial, we will learn how to add text overly watermark on Image in laravel 9 apps.

And also we will learn how to resize images using the image intervention package before storing images into databases and folders in laravel apps.

Laravel 9 Add Text Overlay Watermark on Image Example

Follow the following steps and add text overly watermark on Image in laravel 9 apps:

  • Step 1 – Install Laravel App
  • Step 2 – Connecting App to Database
  • Step 3 – Install PHP Image Intervention Package
  • Step 4 – Add Routes
  • Step 5 – Create Controller
  • Step 6 – Create Blade View
  • Step 7 – Make Folder
  • Step 8 – Start Development Server

Step 1 -Install Laravel App

First of all, we need to execute the following command on your terminal to download laravel fresh setup:

composer create-project --prefer-dist laravel/laravel LaravelIntervention

Step 2 – Connecting App to Database

After successfully installing laravel app, visit your project root directory and find .env file. Then add database credentials in this file, as shown below:

 DB_CONNECTION=mysql 
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name here
DB_USERNAME=here database username here
DB_PASSWORD=here database password here

Step 3 – Install PHP Image Intervention Package

In this step, we need to install laravel image intervention package for resizing the image size. So, open your terminal and execute the below-given command to install it in your laravel apps:

 composer  require intervention/image 

After successfully installing laravel image intervention package. Register image intervention package to providers and allies go to app/config/app.php, as shown below:

<?php

return [

	$providers => [
		......,
		......,

		'Intervention\Image\ImageServiceProvider'
	],

	$aliases => [
		......,
		......,

		'Image' => 'Intervention\Image\Facades\Image'
	]

]

Next migrate the table using the below command :

php artisan migrate

Step 4 – Add Routes

In this step, visit app/routes/ directory and open web.php file. Then add the following routes into it:

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ImageFileController;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
*/

Route::get('/file-upload', [ImageFileController::class, 'index']);

Route::post('/add-watermark', [ImageFileController::class, 'imageFileUpload'])->name('image.watermark');

Step 5 – Create Controller

In this step, we need to create a controller file. So, open your terminal and execute the following command on it:

php artisan make:controller ImageFileController

Then visit to app/controllers/ImageFileController.php and add the following code into it:

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Image;


class ImageFileController extends Controller
{

    public function index()
    {
        return view('my-images');
    }
 
    public function imageFileUpload(Request $request)
    {
        $this->validate($request, [
            'file' => 'required|image|mimes:jpg,jpeg,png,gif,svg|max:4096',
        ]);

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

        $imgFile = Image::make($image->getRealPath());

        $imgFile->text('© 2017-2021 geeksforgeeks.org - All Rights Reserved', 120, 100, function($font) { 
            $font->size(35);  
            $font->color('#ffffff');  
            $font->align('center');  
            $font->valign('bottom');  
            $font->angle(90);  
        })->save(public_path('/uploads').'/'.$input['file']);          

        return back()
        	->with('success','File successfully uploaded.')
        	->with('fileName',$input['file']);         
    }
}

Step 6 – Create Blade View

In this step, we need to create blade view file. So, visit /resources/views and create one file name my-images.blade.php and add the following code into it:

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">

    <title>Laravel Image Manipulation Tutorial</title>
</head>

<body>
    <div class="container mt-4" style="max-width: 600px">
        <h2 class="mb-5">Laravel Image Text Watermarking Example</h2>

        <form action="{{route('image.watermark')}}" enctype="multipart/form-data" method="post">
            @csrf
            @if ($message = Session::get('success'))
            <div class="alert alert-success">
                <strong>{{ $message }}</strong>
            </div>


            <div class="col-md-12 mb-3 text-center">
                <strong>Manipulated image:</strong><br />
                <img src="/uploads/{{ Session::get('fileName') }}" width="600px"/>
            </div>
            @endif

            @if (count($errors) > 0)
            <div class="alert alert-danger">
                <ul>
                    @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                    @endforeach
                </ul>
            </div>
            @endif

            <div class="mb-3">
                <input type="file" name="file" class="form-control"  id="formFile">
            </div>

            <div class="d-grid mt-4">
                <button type="submit" name="submit" class="btn btn-primary">
                    Upload File
                </button>
            </div>
        </form>
    </div>
</body>

</html>

Step 7 – Make Folder

In this step, Visit the public directory and create one folder or directory name upload.

Go to public folder 
=> first create folder name upload

Step 8 – Start Development Server

In this step, execute the following command to start your server locally:

 php artisan serve

Then open your browser and hit the following url on it:

http://127.0.0.1:8000/file-uploads 

If you want to remove public or public/index.php from URL In laravel apps, Click Me

Conclusion

Laravel 9 Image watermarking is the process of adding text information over the image. In this tutorial, we have learned how to add text overly watermark on Image in laravel 9 apps.

Recommended Laravel Tutorials

If you have any questions or thoughts to share, use the comment form below to reach us.

RELATED ARTICLES

Most Popular

Recent Comments