PHP获取照片exif信息
在这个没图说个屁的年代,照片还是很重要的。如果照片上传后会自动加上 照片相关信息,那用户体验的确会好很多,本着这个想法,今天尝试了下 PHP获取照片exif信息,重要的是 获取图片的GPS信息,如果再加上 google maps API 的话,就可以轻松得到位置信息
<?phpif(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);}/*取得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 dataif($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]);}PHP获取照片exif信息的更多相关文章
- Android -- 加载大图片到内存,从gallery获取图片,获取图片exif信息
1. 加载大图片到内存,从gallery获取图片 android默认的最大堆栈只有16M, 图片像素太高会导致内存不足的异常, 需要将图片等比例缩小到适合手机屏幕分辨率, 再加载. 从gallery ...
- 照片EXIF信息的读取和改写的JAVA实现
由于项目需要对照片的EXIF信息进行处理,因此在网上搜索了一番.捣鼓出来了,写下,总结. 需要用到2个jar包,metadata-extractor-2.3.1和mediautil-1.0.这2个ja ...
- Android 获取图片exif信息
使用android api读取图片的exif信息 布局代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/r ...
- 使用PHP获取图像文件的EXIF信息
在我们拍的照片以及各类图像文件中,其实还保存着一些信息是无法直观看到的,比如手机拍照时会有的位置信息,图片的类型.大小等,这些信息就称为 EXIF 信息.一般 JPG . TIFF 这类的图片文件都会 ...
- 利用php获取图片完整Exif信息类 获取图片详细完整信息类
<?php /** * @Author: TonyLevid * @Copyright: TonyLevid.com * @Name: Image Exif Class * @Version: ...
- 用python 获取照片的Exif 信息(获取拍摄设备,时间,地点等信息)
第一步:先安装 pip install exifread 第二部:上代码 import exifread import requests class PhotoExifInfo(): def __in ...
- IOS: 使用imageIO获取和修改图片的exif信息
使用imageIO获取和修改图片的exif信息 一幅图片除了包含我们能看见的像素信息,背后还包含了拍摄时间,光圈大小,曝光等信息.UIImage类将这些细节信息都隐藏了起来,只提供我们关心的图片尺寸, ...
- 获取图片的EXIF信息
对于专业的摄影师来说,Exif信息是很重要的信息,也包含了非常多的东西 1.EXIF EXIF(Exchangeable Image File)是“可交换图像文件”的缩写,当中包含了专门为数码相机的照 ...
- 以最省内存的方式把大图片加载到内存及获取Exif信息和获取屏幕高度和宽度的新方法
我们在加载图片时经常会遇到内存溢出的问题,图片太大,我们加载图片时,一般都是用的如下一般方法(加载本地图片): /** * 不作处理,去加载图片的方法,碰到比较大的图片会内存溢出 */ private ...
随机推荐
- BZOJ3879: SvT【后缀数组+单调栈】
Description (我并不想告诉你题目名字是什么鬼) 有一个长度为n的仅包含小写字母的字符串S,下标范围为[1,n]. 现在有若干组询问,对于每一个询问,我们给出若干个后缀(以其在S中出现的起始 ...
- POJ 2312:Battle City(BFS)
Battle City Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9885 Accepted: 3285 Descr ...
- java面试题12
1. jsp与servlet的区分? 答:Servlet和JSP都是基于java语言上的动态网页技术,Servlet程序其实就是java程序,只不过它所使用的类库为JAVA Servlet API, ...
- tarjan强联通分量(模板)
#include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #inc ...
- ACM中的取模
取模本身的性质:(之前有一篇博客写过)三则运算(+,-,*)过程中的取模与最后的取模一样(前提是最后不超long long(或int) 范围,所以为防止超范围,直接对三则运算中的过程取模) 然后就是A ...
- 动态绑定AJAX,获取下级分类并延迟执行
HTML: <div id='allType'> <div class='allTypeHead'><span>所有分类</span></div& ...
- python 常见的内置函数
内置函数 接下来,我们就一起来看看python里的内置函数.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就是python提供给你直接可以拿来使用的所有函数.这 ...
- Oracle集合类型
Oracle集合类型介绍 集合类型 1. 使用条件: a. 单行单列的数据,使用标量变量 . b. 单行多列数据,使用记录 c. 单列多行数据,使用集合 *集 ...
- ECHO不换行
我想用批处理实现向s.txt中多次分别导入文本例如:“aaaa","bbbb","cccc","dddd"实现s.txt内效果如: ...
- 为什么有时候 php 没有写闭合标签结束符?
找了一些资料,大家对PHP闭合标签的总结如下: 好处:如果这个是一个被别人包含的程序,没有这个结束符,可以减少很多很多问题,比如说:header, setcookie, session_start这些 ...