使用干预将图像转换为灰度

时间:2018-05-25 09:57:48

标签: php laravel-5 grayscale intervention

我正在尝试将我的图片转换为灰度,然后在 Laravel 中下载,但每次我都会收到此错误

  

文件""不存在

不要'知道为什么在这里给出这个错误是我的代码。

$file = public_path() . "/large/s/" . $sheet[0]->sheet_f_id . '-s.jpg';
$image = Image::make($file);
$grayScale = $image->greyscale();
return Response::download($grayScale);

当我转储$file变量时,我得到了类似的响应。

  

" d:\ XAMPP \ htdocs中\ wikistaging \公共/大/ S / 03-02-05-025-s.jpg"

但它仍然给了我山姆的错误,为什么会发生这种情况。任何帮助都会很棒。

2 个答案:

答案 0 :(得分:1)

如果要下载,则首先必须保存创建的文件,并需要提供下载路径。这是工作示例

$img_name=$sheet[0]->sheet_f_id . '-s.jpg';
$destination_path=public_path() . "/large/s/";

$file = $destination_path.$img_name;
$image = Image::make($file);

$image->greyscale()->save($destination_path.'gray-'.$img_name);
return Response::download($destination_path.'gray_'.$img_name);

如果您不想保留可以删除的文件,请将最后一行替换为以下行。

return Response::download($destination_path.'gray_'.$img_name)->deleteFileAfterSend(true);

希望它对你有用。

答案 1 :(得分:0)

您必须在调用 greyscale()后保存图像。 你可以尝试一下:

$filePath = public_path() . "/large/s/" . $sheet[0]->sheet_f_id . '-s-test.jpg';
$image->greyscale();
$image->save($filePath);