【问题标题】:API for resizing images in laravel 5.4在 laravel 5.4 中调整图像大小的 API
【发布时间】:2018-11-08 22:48:39
【问题描述】:

我正在使用 laravel 5.4 开发营销网站 我需要在网站上上传和加载大量图片,如果我每次都加载原始图片,它会变慢。所以我需要你的建议 *

  1. 我应该以两种质量存储图像吗? (原件和 调整大小)
  2. 存储原始图像,加载时调整它们的大小 屏幕上? (需要 API

请分享一些想法和解决方案! 如果你有这样的API,请分享!

【问题讨论】:

  • 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。

标签: laravel image api


【解决方案1】:

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));

}

【讨论】:

  • 谢谢,它成功了。但现在的问题是,它没有上传大小超过 1MB 的图像。有什么解决办法吗?
  • 还有一个,如何获取上传图片的宽度和高度?我的意思是,根据它们的宽度和高度我想调整大小。不像我现在做的。例如,当图像为 1024x680 时,如果我使用 300x300 之类的默认值调整它的大小,那就不好了。
  • 你可以通过 $width = Image::make('public/foo.jpg')->width(); $height = Image::make('public/foo.jpg')->height();
猜你喜欢
  • 2019-02-25
  • 2017-03-14
  • 1970-01-01
  • 2015-09-15
  • 2018-12-22
  • 2016-02-16
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
相关资源
最近更新 更多