PHP从请求文件中旋转图像


PHP Rotate Image from request file

我现在使用以下方法将图像从输入文件类型存储到服务器

$image = $request->file('file');
$filename = $item->itemId . '.png';
Storage::disk('s3')->put('/'.$filename, file_get_contents($image), 'public');

我找到了用PHP 旋转图像的方法

$filename = 'test.jpg';
$degrees = 180;
header('Content-type: image/jpeg');
$source = imagecreatefromjpeg($filename);
$rotate = imagerotate($source, $degrees, 0);
imagejpeg($rotate);

但我不知道如何用$request->file('file')实现代码

谢谢!

我不确定你的函数是从哪里得到的,imagecreatefromjpeg()和imagerotate(),但如果你只使用PHP自己的可用函数(由Imagick提供),你可以做一些更简单的事情。。。

$image = new Imagick();
$image_filehandle = fopen('some/file.jpg', 'a+');
$image->readImageFile($image_filehandle );
$image->rotateImage("FFFFFF", 90);  # Rotate 90 degrees, keep background of "FFFFFF" (white)
$image_icon_filehandle = fopen('some/file-rotated.jpg', 'a+');
$image->writeImageFile($image_icon_filehandle);

如果图像旋转并留下一定量的背景,则此处应用背景色("FFFFFF")(对于增量为90的旋转度,不会发生这种情况)。