问题描述
我正在创建一个将照片保存到 /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");
}