Laravel 8 - 干预/图像 - 未定义类型“图像”

问题描述

我正在创建一个将照片保存到 /storage/ 文件夹的控制器。为了避免提交一堆大照片而不是为它们的 CSS 设置样式,我想使用 Intervention / 图像库调整它们的大小。不幸的是,尽管直接按照文档中的安装说明进行操作,但对该库的多次卸载和重新安装都不起作用。当我使用此代码片段时:

Use Image;

我收到一条错误消息:

Undefined type 'Image'

按照说明,我在 /config/app.PHP添加了以下内容

    'providers' => [
        ...
        Intervention\Image\ImageServiceProvider::class,],'aliases' => [
        ...
        'Image' => Intervention\Image\Facades\Image::class,...
    ],

此外,我清理并重新配置了缓存和配置,重新启动了服务器,尝试使用:

use Intervention\Image\ImageManagerStatic as Image;

但不幸的是,这也无济于事。

我做错了什么?

解决方法

直接使用 Image Facade

\Intervention\Image\Facades\Image::make(\File::get($file_address))
    ->fit($width,$height)
    ->save($path_for_saving);

您可以根据需要调整或裁剪图像。

,

你必须使用下面的命名空间
use Intervention\Image\Facades\Image;
然后你可以使用like-

$image = $request->file('image');
$ext = $image->getClientOriginalExtension();
$img = Image::make($image)->resize(300,200)->save('storage/folder/filename'.'.'.$ext);
,
use Illuminate\Http\Request;
use Illuminate\Support\Facades\File;


 public function imageUploadPost(Request $request) 
 {

    $photo = $request->file('image');
    $imagename = time() . '.' . $photo->getClientOriginalExtension();

    // Upload Crop Image...
    $destinationPath = public_path('uploads/thumbnail_images');
    if (!File::isDirectory($destinationPath)) {
        File::makeDirectory($destinationPath,0777,true,true);
    }
    $thumb_img = \Intervention\Image\Facades\Image::make($photo->getRealPath())->resize(100,100);
    $thumb_img->save($destinationPath . '/' . $imagename,100); //  Define Quality 100 (Optional)
    

    echo '<pre>';
    print_r("Upload Successfully. Store File : laravel_project/public/uploads & laravel_project/public/uploads/thumbnail_images");

 }