PHP Exif / IFD0函数
PHP中的Exif/IFD0函数可与图像一起使用,以提取与它们关联的元数据。大多数图像应用程序和数码相机都会生成带有一定数量元数据的图像。这很明显,例如文件大小和创建时间戳,但是如果将相机链接到GPS系统,您还可以获得诸如版权声明,相机名称,拍摄的日期图片甚至位置之类的内容。此元数据可用于对图像进行排序或分类。
安装
在Linux系统上,必须在调用configure脚本时使用命令--enable-exif配置exif支持。
在Windows上,您要做的就是取消注释php.ini文件中DLL的php_exif.dll和php_mbstring.dll的行。但是,您必须确保在php_exif.dllDLL之前先加载php_mbstring.dllDLL。因此,您将需要编辑php.ini文件,以便php_mbstring.dll位于php_exif.dll上方。
使用
要从图像读取元数据,请使用函数exif_read_data()。它具有各种输入,但是要打印出可用的不同元数据的列表,请使用以下代码。
$exif = exif_read_data('Picture0218.jpg', 0, true); //捕获图像元数据 echo "Picture0218.jpg
"; echo '
'.$key.' | '.$name.' | '.$val.' |
这将打印出一个表格,其中包含PHP可用的所有元数据。要访问单个组件,您可以通过关联数组访问它。以下代码将打印出拍摄日期和时间。
echo$exif['IFD0']['DateTime'];
通过使用exif_read_data()具有以下参数的函数,还可以从图像中检索缩略图信息(如果图像包含缩略图信息)。
$exif=exif_read_data('Picture0218.jpg',0,true,true);
您可以使用以下方法选择缩略图信息:
$image=$exif['THUMBNAIL']['THUMBNAIL'];
或者,您可以使用该exif_thumbnail()功能,该功能是获取任何图像缩略图的便捷方法。它以图像名称作为第一个参数,并使用该功能设置的三个可选参数。
$image = exif_thumbnail('Picture0218.jpg', $width, $height, $type); if($image!==false){ header('Content-type:' .image_type_to_mime_type($type)); echo $image; exit; }else{ //没有可用的缩略图,请在此处处理错误 echo 'No thumbnail available'; }
然后,您可以稍后在脚本中使用$width,$height和$type变量。