我尝试获取图像exif数据,以便使用图像干预定向功能。
唯一的问题是我无法使用Storage::get()读取exif数据
首先,我存储上传的图像如下:
$filename = uniqid().'.'.$file->getClientOriginalExtension();
$path = "images/$id/$filename";
Storage::put($path, File::get($file->getRealPath()));
在一个队列中,我正在阅读图像,做一些调整大小和上传到AWS:
$image = Image::make(Storage::disk('images')->get("$this->id/$file"));
$image->orientate();
$image->resize(null, 600, function ($constraint) {
$constraint->aspectRatio();
});
$image->stream('jpg', 85);
Storage::put("images/$this->id/main/$file", $image);
$image->destroy();
图像确实会调整大小并上传到AWS,但唯一的问题是它会横向显示,所以似乎我无法使用以下命令读取exif数据:
Storage::disk('images')->get("$this->id/$file")
我已经跑了:php -m型|更多,我可以看到“exif”被列出,所以我在我的Laravel Forge DO服务器中有这个模块
4条答案
按热度按时间bmp9r5qi1#
通过以下命令安装
Intervention\Image
。更新
config/app.php
使用资源库:
kyxcudwk2#
要从图像干预获取exif数据,必须运行
exif()
函数这很简单,只要加上一句:
函数
exif()
将返回数组()中的所有现有数据;您可以将参数传递给
exif()
函数,该函数将以字符串形式返回一些信息,例如:$image->exif('model')
您可以在图片intervention website上了解更多信息
h79rfbju3#
一些图像处理软件实际上会删除 meta数据。如果您安装了GD,但没有元数据,则它可能不存在。测试此问题的最佳方法是尝试另一个图像。
ibrsph3r4#