PHP获取照片exif信息
在这个没图说个屁的年代,照片还是很重要的。如果照片上传后会自动加上 照片相关信息,那用户体验的确会好很多,本着这个想法,今天尝试了下 PHP获取照片exif信息,重要的是 获取图片的GPS信息,如果再加上 google maps API 的话,就可以轻松得到位置信息
<?php
if(function_exists('exif_read_data'))
{
 $exif=exif_read_data('./test/test1.jpg');  //图片地址
 //var_dump($exif);
 //echo $data['timeline']=$exif['DateTimeOriginal'];
 $data['size']=$size=$exif['FileSize']/1024;
 if($size>1024)
 {
 //单位为MB
 //echo ceil($size/1024).'MB<br>';
 }else{
 //单位为KB
//echo ceil($size).'KB<br>';
 }
 //设备信息
 $data['device']=$exif['Make'].''.$exif['Model'];
 if($exif['GPSLatitudeRef']=='N'&&$exif['GPSLongitudeRef']=='E')
 {
 //地图坐标信息
 //纬度
 $data['latitude'] = getGps($exif['GPSLatitude'],$exif['GPSLongitudeRef']);
 //经度
 $data['longitude'] = getGps($exif['GPSLongitude'],$exif['GPSLongitudeRef']);
 }
 //eval('echo 1+3;');
 var_dump($data);
 echo 'http://ditu.google.cn/maps?q=('.$data['latitude'].','.$data['longitude'].')';
}
/*
取得EXIF的內容
$exif = exif_read_data('my.jpg', 0, true);
$latitude = $exif['GPS']['GPSLatitude']; //经度
$longitude = $exif['GPS']['GPSLongitude']; //纬度
都是各有三個个元素的array 各代表度,分,秒
把上面2个值分别调用如下方法,就可以得到gps经纬度了
 $banqiu = $exif['GPS'][GPSLatitudeRef]
 或者
 $banqiu = $exif['GPS'][GPSLongitudeRef]
 */
function getGps($exifCoord,$banqiu)
{
$degrees= count($exifCoord) > 0 ? gps2Num($exifCoord[0]) : 0;
$minutes= count($exifCoord) > 1 ? gps2Num($exifCoord[1]) : 0;
$seconds= count($exifCoord) > 2 ? gps2Num($exifCoord[2]) : 0;
//normalize
$minutes+= 60 * ($degrees- floor($degrees));
$degrees= floor($degrees);
 $seconds+= 60 * ($minutes- floor($minutes));
$minutes= floor($minutes);
 //extra normalization, probably not necessary unless you get weird data
if($seconds>= 60)
{
$minutes+= floor($seconds/60.0);
$seconds-= 60*floor($seconds/60.0);
}
 if($minutes>= 60)
{
$degrees+= floor($minutes/60.0);
$minutes-= 60*floor($minutes/60.0);
}
 $lng_lat = $degrees + $minutes/60 + $seconds/60/60;
 if(strtoupper($banqiu) == 'W' || strtoupper($banqiu) == 'S'){
 //如果是南半球 或者 西半球 乘以-1
 $lng_lat = $lng_lat * -1;
 }
 return $lng_lat;
 //return array('degrees'=> $degrees, 'minutes'=> $minutes, 'seconds'=> $seconds);
}
/*
取得EXIF的內容
分数 转 小数
*/
function gps2Num($coordPart)
{
$parts= explode('/', $coordPart);
 if(count($parts) <= 0)
return 0;
if(count($parts) == 1)
return $parts[0];
 return floatval($parts[0]) / floatval($parts[1]);
}

posted on 2013-07-10 15:06 jason&li 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/ldms/p/3182204.html

PHP获取照片exif信息相关推荐

  1. web获取照片EXIF信息(例如:拍照方向、相机设备型号、拍摄时间、ISO 感光度、GPS 地理位置等数据)

    目录 前言 具体使用 1.手机打开相应功能,拍照时开启定位 2.运行exif.html 3.根据提示上传图片,获取信息 4.GPS信息获取 代码 exif.html 前言 插件:Exif.js 插件文 ...

  2. python获取照片EXIF信息

    一.前言 目前好多照片都已经抹掉了设备信息.拍摄时间和GPS信息这种比较隐私的信息,除去这这种信息,其他的信息一般照片都能拿到.文末会给出可以查到完整信息的图片做参考. 二.准备 主要是用python ...

  3. php 获取照片信息,PHP中读取照片exif信息的方法

    这篇文章主要介绍了PHP中读取照片exif信息的方法,本文从什么是exif信息开始讲解,使用PHP需要什么扩展.及它的安装方法和使用代码示例等,需要的朋友可以参考下 先来了解什么是图片的Exif信息 ...

  4. 获取图片Exif信息

    获取图片Exif信息 问题:手机照片上传时,会发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:而Android不会出现这种现象. 原因:ios系统默认Orientation属性为1,与 ...

  5. 查看照片EXIF信息的类

    网站发现了一个查看jpeg类型照片的exif信息的类,在这里分享下 <?php /** * @Author: TonyLevid * @Copyright: TonyLevid.com * @N ...

  6. 用Python获取照片GPS信息

    用Python获取照片GPS信息 注意事项: 1.调用了百度地图的接口. 2.能够获取信息的照片是本身就带有这些信息的,只不过我们把它查出来了而已. 3.如果是微信接收到的非原图的照片.拍摄时没开定位 ...

  7. 怎么查看图片像素和大小?照片exif信息怎么看?

    在网络上下载图片都能看到图片大小,但是如果是我们平时自己拍摄或者进行过图片处理的该怎么查看图片大小呢.有些朋友可能会下载图片信息查看器来查询图片信息,其实还有一种更加简单的方法,使用压缩图的EXIF信 ...

  8. Python解析照片EXIF信息,获取坐标位置

    目录 1.背景 2.云端部署 3.照片分析 1.背景 每张图片都包含EXIF信息,它是可交换图像文件的缩写,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据.EXIF可以附加于JPE ...

  9. PIL获取照片exif 批量修改手机照片名字为拍摄时间

    每过一段时间,手机里的照片就要清理一遍,备份到硬盘上,但是时间越久,记忆越模糊,只能大概记得一张照片是在哪里.什么状态下拍的,却很难回忆起来具体的时间,所以想到将照片名字改成拍摄时间,这样就很方便以后 ...

  10. java 修改照片exif信息

    参考文章: java更改图片拍摄信息及其他Exif详细信息 Java修改图片元数据Exif信息 Commons Imaging开源网站介绍 引入类 <dependency><grou ...

最新文章

  1. java反射原理三种,Java反射的原理,作用
  2. unity3d android 回调,大神们,请问unity和Android交互的时候,为什么总是调用不到方法...
  3. Orleans解决并发之痛(三):集群
  4. .Net Core Swagger:Actions require an explicit HttpMethod binding for Swagger 2.0
  5. python中将列表中的元素倒序输出_python实现对列表中的元素进行倒序打印
  6. 太原工业学院单片机课程设计_单片机智能小车毕业设计论文
  7. kinect内参数的标定
  8. Java基础学习总结(135)——Java代码性能优化实践经验再总结
  9. oracle1设置0000进程,oracle各后台进程简介
  10. Javascript如何深拷贝对象
  11. HFSS器件导入Altium 教程
  12. 三菱FX2NPLC 定时器和计数器(1)
  13. c++跟踪调试怎么用 dev_DEVC++调试方法
  14. IOS – OpenGL ES 调节图像白平衡/色温 GPUImageWhiteBalanceFilter
  15. Centos7之pacemaker高可用安装配置
  16. 森林图怎么分析_图说meta十一:森林图暨RevMan软件使用方法简介
  17. 国家海洋局的超算应用探索
  18. 郭炜-C语言程序设计-程序设计与算法(一)-第五周
  19. 【AI2 THOR】环境使用说明
  20. mkv文件怎么转换成mp4?来看看这四种转换方式吧!

热门文章

  1. 如何安装 macOS Monterey Public Beta?
  2. 在新款mac上找回经典的开机启动声,一条命令轻松搞定
  3. 如何将屏幕截图保存到桌面以外的自定义文件夹?
  4. M1 Mac禁用电池运行状况管理,打开/关闭优化电池和充电方法有哪些?
  5. 数组reduce()方法
  6. 选择编程语言前需要知道的事
  7. RGB格式详解(二)--索引格式
  8. 改变Linux的DNS解析顺序(DNS到hosts)
  9. linux vi 块操作、多窗口
  10. 本地开发phpmyadmin去登陆验证