Php 如何在laravel 5.8中上传时向图像添加水印

Php 如何在laravel 5.8中上传时向图像添加水印,php,laravel,laravel-5,Php,Laravel,Laravel 5,我想在用户在系统上上载图像时添加水印。我目前的代码工作正常,但我需要它的工作上传。我应该在代码中添加什么 我的水印控制器文件 <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Image; class WaterMarkController extends Controller { public function imageWatermark() { $img = Image::ma

我想在用户在系统上上载图像时添加水印。我目前的代码工作正常,但我需要它的工作上传。我应该在代码中添加什么

我的水印控制器文件

<?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'));
 }

 }

正如我所说,我当前的代码工作正常,但我需要它在用户将图像上载到系统时动态工作,使用此代码,您必须将watermark.png和background.jpg配置到同一目录,然后访问路由水印图像。请在这方面帮助我,我对拉雷维尔很陌生。谢谢

您可以使用
$request->file('YOUR_FIELD_NAME')
获取上传的图像,并使用storage helper访问上传到存储中的水印

Route::get('watermark-image', 'WaterMarkController@imageWatermark');
Route::get('watermark-text', 'WaterMarkController@textWatermark');