I am wondering if you can help me again. I am having trouble with creating/putting a watermark on the profile images.
Till now I have:
WaterMarkController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Image;
class WaterMarkController extends Controller
{
public function imageWatermark()
{
Image::make(public_path('storage/images/background.jpg'));
/* insert watermark at bottom-right corner with 10px offset */
$img->insert(public_path('storage/images/watermark.png'), 'bottom-right', 10, 10);
$img->encode('png');
$img->save(public_path('storage/images/new-image.png'));
$type = 'png';
$new_image = 'data:image/' . $type . ';base64,' . base64_encode($img);
return view('show_watermark', compact('new_image'));
}
public function textWatermark()
{
Image::make(public_path('storage/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('storage/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'));
}
}
The file - show_watermark.blade.php:
<!doctype html>
<html lang="en">
<head>
<title>Laravel Add Watermark on Images</title>
</head>
<body style="margin-top: 40px; text-align: center;">
<h1>Laravel Add Watermark</h1>
<img src="{{$new_image}}" alt="Watermark">
</body>
</html>
and the routes:
Route::get('watermark-image', 'WaterMarkController@imageWatermark');
Route::get('watermark-text', 'WaterMarkController@textWatermark');
what else should be done? Because I am having the error:
Intervention\Image\Exception\NotReadableException Image source not readable
How do I make it readable? And nowhere in the code, I haven't shown the path to the image that I want for watermark (I have created my own logo for the project and I want to use it), how do I show the path to it? And do I put it in the same place where the profile pictures are or, in another folder?
Thanks in Advance!!!
I dont know what do you happen, maybe if your use Linux you need to add permissions to the public folder maybe, because on windows I create a project with your code and work perfectly, sure that you have the files on correct folders
public function imageWatermark()
{
$img = Image::make(public_path('images/background.jpg'));
/* insert watermark at bottom-right corner with 10px offset */
$img->insert(public_path('images/logo-dateado-blanco.png'), 'bottom-right', 10, 10);
$img->encode('png');
$img->save(public_path('images/new-image.png'));
$type = 'png';
$new_image = 'data:image/' . $type . ';base64,' . base64_encode($img);
return view('show_watermark', compact('new_image'));
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.