php - Laravel Storage::get() 不返回图像的 exif 数据

标签 php image laravel

我正在尝试获取图像 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 服务器中有该模块

最佳答案

通过以下命令安装Intervention\Image

composer require intervention/image

更新 config/app.php

'providers' => [
    Intervention\Image\ImageServiceProvider::class
],
'aliases' => [
    'Image' => Intervention\Image\Facades\Image::class
]

使用库:

$data = Image::make(public_path('IMG.jpg'))->exif();

if (isset($data['GPSLatitude'])) {
    $lat = eval('return ' . $data['GPSLatitude'][0] . ';')
        + (eval('return ' . $data['GPSLatitude'][1] . ';') / 60)
        + (eval('return ' . $data['GPSLatitude'][2] . ';') / 3600);

    $lng = eval('return ' . $data['GPSLongitude'][0] . ';')
        + (eval('return ' . $data['GPSLongitude'][1] . ';') / 60)
        + (eval('return ' . $data['GPSLongitude'][2] . ';') / 3600);

    echo "$lat, $lng";
} else {
    echo "No GPS Info";
}

关于php - Laravel Storage::get() 不返回图像的 exif 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40685885/

相关文章:

javascript - 在不模糊的情况下调整 Canvas 图像的大小

laravel - laravel 中 orWhere 内的子查询

php - 如何从 Vagrant 内部访问外部 MySQL?

php - 调用未定义的方法 Illuminate\Database\Query\Builder::associate()

linux - ImageMagick:如何在调整大量图像文件大小时实现低内存使用?

php - Laravel - 交互式用户设置

php - laravel 中的时间戳不会更新

php - 使用 Beanstalk 在 Laravel 4 中找不到类 'Pheanstalk_Pheanstalk'

php - Bootstrap 样式不适用于 codeigniter

javascript - 将不同尺寸的图像很好地融入拼贴画中