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

Converting images to greyscale using intervention

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

The file "" does not exist

不知道为什么会出现此错误,这是我的代码。

$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\public/large/s/03-02-05-025-s.jpg"

但它仍然给我相同的错误,为什么会这样。任何帮助都会很棒。

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

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

希望对你有用。

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

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