php - 在 laravel 中旋转并保存照片
问题描述
我想在服务器上上传照片。但在此之前,我想旋转该图像。我的代码如下所示,
$photo = $request->file($field);
$temp = imagecreatefromjpeg($photo);
$rotated = imagerotate($temp, 270, 0);
$extension = $photo->getClientOriginalExtension();
$flieNametoStore = time()."___".explode('.',$photo->getClientOriginalName())[0].'.'.$extension;
Storage::disk('public')->put($flieNametoStore, $rotated);
它不工作。它显示错误,如supplied resource is not a valid stream resource
. 我也试过Storage::disk('public')->put($flieNametoStore, File::get($rotated));
了,但还是不行。
所以,我有两个问题。我可以做些什么来实现我的目标?(旋转并保存在服务器中。)另外,我使用了 imagecreatefromjpeg 函数。但是,我想对其他文件类型执行相同的代码。(laravel 图像验证支持的所有类型。)
我在 SO 中搜索并发现了一些类似的问题。但是,这些解决方案并没有给我我想要的输出。
解决方案
使用 imagejpeg 功能保存照片
imagerotate 返回一个 gd 资源类型而不是资源...
$photo = request()->file($field);
$temp = imagecreatefromjpeg($photo);
$rotated = imagerotate($temp, 270, 0);
$extension = $photo->getClientOriginalExtension();
$flieNametoStore = time() . "___" . explode('.', $photo->getClientOriginalName())[0] . '.' . $extension;
imagejpeg($rotated, $flieNametoStore);
或者
ob_start();
imagejpeg($rotated);
$rotated = ob_get_contents();
ob_clean();
Storage::disk('public')->put($flieNametoStore, $rotated);
推荐阅读
- vim - 如何正确使用 vim 宏 - 488 Erro
- python - numpy 中的 arr[range(3)] 与 arr[:3] 的区别
- python - 如何在Python中匹配方括号中的日期时间
- api - 有没有办法在后端服务器启动时直接在 fastapi 中调用 api?
- angular - 为什么 Angular router.navigate 不导航?
- jquery - 无法读取未定义的属性“长度” - Fullcalendar
- c++ - 具有指向另一个类中的类实例的指针以及其他方式
- c# - 用户设备认证离线
- python-3.x - python的范围函数的实际范围是多少
- laravel - 如何从两个以上的表 laravel 中获取价值?