在 Laravel 5.2 中调整图像大小

新手上路,请多包涵

谁能帮助我如何在 Laravel 中实现调整图像大小?

我只有这个代码:

 if($request->hasFile('image')){
    if (Input::file('image')->isValid()) {
        $file = Input::file('image');
        $destination = base_path() . '/public/images/ServiceImages';
        $extension = Input::file('image')->getClientOriginalExtension();
        $fileName = rand(111,99999).'.'.$extension;

        if(!empty($data['Image'])){
            unlink($destination.$data['Image']);
        }

        $file->move($destination, $fileName);
        $service->image=$fileName;
    }
}

原文由 kunal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 561
2 个回答

Laravel 没有默认的图像大小调整。但是大多数 Laravel 开发人员在处理图像时使用“ 图像干预”。它很容易使用。

要安装(图像干预):

第 1 步运行

composer require intervention/image

第 2 步在您的 config/app.php 上:

在 $providers 数组中,添加以下内容:

 Intervention\Image\ImageServiceProvider::class

在 $aliases 数组中,添加以下内容:

 'Image' => Intervention\Image\Facades\Image::class

如果您遇到问题,缺少 GD 库,请安装它

  • PHP5: sudo apt-get install php5-gd
  • PHP7: sudo apt-get install php7.0-gd

在您的控制器上使用。

第 3 步

在您的控制器顶部

use Intervention\Image\ImageManagerStatic as Image;

第4步

关于你的方法(有几种方法,但这会给你一个想法)

 if($request->hasFile('image')) {

    $image       = $request->file('image');
    $filename    = $image->getClientOriginalName();

    $image_resize = Image::make($image->getRealPath());
    $image_resize->resize(300, 300);
    $image_resize->save(public_path('images/ServiceImages/' .$filename));

}

参考 这里

原文由 mpalencia 发布,翻译遵循 CC BY-SA 4.0 许可协议

我会为此任务推荐 干预图像

只需使用 composer 安装即可

composer require intervention/image

并像这样使用它:

 \Intervention\Image\ImageManagerStatic::make('public/foo')->fit(100)->save($path);


评论

  • 服务提供者 干预镜像为 Laravel 提供了一个服务提供者。您可以按照 此处 的说明手动添加服务提供商。之后,您可以将配置文件推送到 Laravel。但是,配置只有一个选项,那就是图像驱动程序。 gd 是默认的,所以如果你不想改变它,不需要使用服务提供者和配置。

  • 别名 您可以在 config/app 中创建别名,而不是服务提供者:

   'Image' => Intervention\Image\ImageManagerStatic::class

然后你可以像这样使用它:

   \Image::make('public/foo')->fit(100)->save($path);

原文由 Adam 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题