Hello Dev.
Today i will explained to the how to create a watermarking image in laravel 8. This example is so easy to use in laravel.
So, this example to i am used in 'intervention/image' package is used and create a watermarking image. So you can easily used and create watermarking image text in laravel 6, laravel 7 and laravel 8 version.
So let's start to the example and follow to the my all step.
First step to create a new laravel project in following command through.
composer create-project --prefer-dist laravel/laravel blog
Second step to install composer package('intervention/image') in just following command through.
composer require intervention/image
Third step to intervention/image
package is installed then register to the package in your config/app.php file.
App/config.php
<?php
return [
$providers => [
......,
'Intervention\Image\ImageServiceProvider'
],
$aliases => [
......,
'Image' => 'Intervention\Image\Facades\Image'
]
]
Fourth step to create a two routes in web.php file.
routes/web.php
Route::get('file-upload', [ImageFileController::class, 'index']);
Route::post('add-watermark', [ImageFileController::class, 'imageFileUpload'])->name('image.watermark');
Fifth step to create a ImageFileController
in just following command through. And then next write a code in store to image in your public directory.
php artisan make:controller ImageFileController
routes/web.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Image;
class ImageFileController extends Controller
{
public function index()
{
return view('image');
}
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('© 2016-2020 positronX.io - 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']);
}
}
Finally last step to create a view file in image.blade.php in your view folder.
resources/views/image.blade.php
<!DOCTYPE html>
<html>
<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 Text Watermarking Example</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>
Now we are ready to run contact form submit request with laravel 8 so run bellow command for quick run
php artisan serve
Now you can open bellow URL on your browser
http://localhost:8000/file-uploads
i'm hoping it assist you to, thanks for visit my article if you like my article then proportion together with your friend and social platform.