curl -s -v -X HEAD http://sitename.com/123.jpg 2>&1 | grep '^< Last-Modified:'
约我约会。有什么办法可以检索图像的 GPS 坐标?还有其他元数据吗?
Joh*_*ith 14
你得到的不是照片拍摄的时间。它是123.jpg
文件上次修改(或创建/上传到服务器上)的时间。该信息来自网络服务器,它从文件的时间戳中获取。这张照片很可能比你得到的照片大 10 年。其实,让它看起来像是来自未来也不会太难!
您要查找的信息(可选)存储在图像的元数据中。从网络服务器的角度来看,这是文件实际内容的一部分,这意味着 HTTPHEAD
请求是不够的。首先,您需要下载文件。让我们以那张船的图片为例。
如果您运行您的curl
命令,您将看到该文件上次修改时间为 2015 年 10 月 13 日。下载文件后,该日期也将出现在文件的时间戳中(前提是您在下载时保留它们,我相信wget
确实如此)。
现在,一旦您获得了文件,您所需要做的就是访问其元数据。在 Linux 上,我会说identify
并且exiftool
是最流行的选择。在你的情况下:
$ identify -format "%[EXIF:*GPS*]" image.jpg
$ exiftool -gpslatitude -gpslongitude image.jpg
Run Code Online (Sandbox Code Playgroud)
请注意,为了运行这些检查,您实际上不必将内容下载到实际文件中。您可以轻松使用管道:
$ curl http://example.com/image.jpg | identify -format "%[EXIF:*GPS*]" -
$ curl http://example.com/image.jpg | exiftool -gpslatitude -gpslongitude -
Run Code Online (Sandbox Code Playgroud)
一个重要的注意事项:地理标记不是一个系统的过程。并非所有图像都嵌入了 GPS 坐标。如果用于拍照的设备支持 GPS 并实际写入 GPS 元数据,那么您就很好(智能手机可以做到这一点......)。否则,这两个命令将不会返回任何内容,在这种情况下,您必须更有创意来确定位置...