Php 在Laravel中上传之前如何压缩图像?

Php 在Laravel中上传之前如何压缩图像?,php,image,performance,laravel-5.3,Php,Image,Performance,Laravel 5.3,我正在制作一个图像库网站,用户可以上传任何图像,它们将显示在前端。我需要在不影响图像质量的情况下压缩图像,以减小图像大小,这样页面加载速度就不会产生太大影响。我正在使用以下代码上载图像: $rules = array('file' => 'required'); $destinationPath = 'assets/images/pages' $validator = Validator::make(array('file' => $file), $rules); if ($vali

我正在制作一个图像库网站,用户可以上传任何图像,它们将显示在前端。我需要在不影响图像质量的情况下压缩图像,以减小图像大小,这样页面加载速度就不会产生太大影响。我正在使用以下代码上载图像:

$rules = array('file' => 'required');
$destinationPath = 'assets/images/pages'
$validator = Validator::make(array('file' => $file), $rules);
if ($validator->passes()) {
   $filename = time() . $uploadcount . '.' . $file->getClientOriginalExtension();
   $file->move($destinationPath, $filename);
   return $filename;
} else {
   return '';
}

您需要为web使用优化图像,因为用户可能会上载过大的图像(无论是大小还是分辨率)。您可能还希望从图像中删除元数据以进一步减小大小。干预图像非常适合在Laravel中调整/优化用于web使用的图像。您需要在保存图像之前对其进行优化,以便在加载网页时使用优化版本


您需要优化图像以供web使用,因为用户可能会上载过大的图像(无论大小还是分辨率)。您可能还希望从图像中删除元数据以进一步减小大小。干预图像非常适合在Laravel中调整/优化用于web使用的图像。您需要在保存图像之前对其进行优化,以便在加载网页时使用优化版本

提供压缩图像的API服务。您所需要做的就是在Laravel中安装他们的PHP库,从他们的网站上获取开发人员密钥。之后,通过添加下面的代码,您可以压缩您上传的图像。在代码中,我假设您已将文件存储在“storage”目录下

$filepath = public_path('storage/profile_images/'.$filename); 
\Tinify\setKey("YOUR_API_KEY");
$source = \Tinify\fromFile($filepath);
$source->toFile($filepath);
这里是一个博客的链接,它解释了如何在Laravel中上传和压缩图像

提供了压缩图像的API服务。您所需要做的就是在Laravel中安装他们的PHP库,从他们的网站上获取开发人员密钥。之后,通过添加下面的代码,您可以压缩您上传的图像。在代码中,我假设您已将文件存储在“storage”目录下

$filepath = public_path('storage/profile_images/'.$filename); 
\Tinify\setKey("YOUR_API_KEY");
$source = \Tinify\fromFile($filepath);
$source->toFile($filepath);

这里是一个博客的链接,它解释了如何在Laravel中上传和压缩图像

上传到服务器之前压缩图像的最佳和最简单的方法,我在这里找到:-


上传到服务器之前压缩图像的最佳且最简单的方法,我在这里找到:-



我认为大多数Web服务器和Web浏览器都支持即时压缩内容,因此您不必为无损压缩做任何事情。当然,这只会影响服务器>客户端的方向。@apokryfos我已经使用htaccess和的page insight启用了Gzip,还告诉我压缩已启用,但它仍然会给我错误,使图像大小减小,页面速度介于20-28之间。您可以使用图像干预来调整图像大小,并同时存储大小和大小原版。调整大小后的版本应该具有您稍后将显示的尺寸,这样您就不会看到质量损失。如果你仍然需要原稿,你也可以用这种方式将它们放在适当的位置。我认为大多数Web服务器和Web浏览器都支持即时压缩内容,所以你不需要为无损压缩做任何事情。当然,这只会影响服务器>客户端的方向。@apokryfos我已经使用htaccess和的page insight启用了Gzip,还告诉我压缩已启用,但它仍然会给我错误,使图像大小减小,页面速度介于20-28之间。您可以使用图像干预来调整图像大小,并同时存储大小和大小原版。调整大小后的版本应该具有您稍后将显示的尺寸,这样您就不会看到质量损失。如果您仍然需要原件,您也可以通过这种方式将其放置到位。我尝试将其集成到Laravel中,但运行以下composer命令,但出现错误:php composer.phar require interference/image无法打开输入文件:composer.phar:php composer.phar require interference/image您是否在Laravel中运行该命令项目目录?是的。之后我关注了这个博客,现在composer更新成功了。我想知道我是否必须运行以下artisan命令:php artisan供应商:publish--provider=“Intervention\Image\ImageServiceProviderLaravel5”只有在您想要更改配置,即从GD更改驱动程序时,才需要运行该命令(默认)ImagickI试图将其集成到Laravel中,但运行以下composer命令,但出现错误:php composer.phar require interference/image无法打开输入文件:composer.phar:php composer.phar require interference/image您是否在Laravel项目目录中运行该命令?是。之后我关注了这个博客,现在composer更新成功了。我想知道我是否必须运行以下artisan命令:php artisan供应商:publish--provider=“Intervention\Image\ImageServiceProviderLaravel5”只有在您想要更改配置,即从GD更改驱动程序时,才需要运行该命令(默认)通过在Laravel项目中运行命令“composer require tinify/tinify”,将其安装到ImagickFirst安装库中。然后尝试上面的代码。首先在您的Laravel项目中运行命令“composer require tinify/tinify”来安装库。然后尝试上面的代码。虽然这理论上可以回答问题,但此处包含答案的基本部分,并提供链接供参考。虽然这理论上可以回答问题,但此处包含答案的基本部分,并提供链接供参考。