记录一些常用的函数和瞎折腾的过程……

读取图片的EXIF信息

提醒:本文最后更新于 2352 天前,文中所描述的信息可能已发生改变,请谨慎使用。

自己做了个图片网站,需要读取并显示图片的exif信息,自己试着写了这样一个函数,可以显示图片基本的exif信息,如光圈、快门、焦距等信息。

直接上函数吧,希望对大家有借鉴。

//输出图片的EXIF信息
function exif_info($img){
    $exif = exif_read_data($img, 'IFD0');
    //判断为空不显示器材信息
    if($exif["Make"]=='' && $exif["Model"]==''){
        $qicai = '';
    }else{
        $qicai = '<strong>[器材]</strong> 厂商:'.$exif["Make"].' 型号:'.$exif["Model"].'<br />';
    }
    //解决手机拍摄没有EV参数,将其显示为“未知”    
    if($exif["ExposureBiasValue"]==''){
        $EV = '未知';
    }else{
        $EV = $exif["ExposureBiasValue"].'EV';
    }
    //判断为空不显示参数信息
    if($exif["FNumber"]=='' && $exif["ExposureTime"]=='' && $exif["FocalLength"]=='' && $exif["ISOSpeedRatings"]=='' && $exif["ExposureBiasValue"]=='' && $exif["DateTimeOriginal"]==''){
        $canshu = '';
    }else{
        $canshu = '<strong>[参数]</strong> 光圈:'.$exif["FNumber"].' 快门:'.$exif["ExposureTime"].'s 焦距:'.$exif["FocalLength"].'mm 感光度:'.$exif["ISOSpeedRatings"].' 曝光补偿:'.$EV.' 拍摄时间:'.$exif["DateTimeOriginal"].'<br />';
    }
    //显示尺寸大小
    $chicun = '<strong>[尺寸]</strong> 格式:'.$exif["MimeType"].' 尺寸:'.$exif["COMPUTED"]["Width"].'px*'.$exif["COMPUTED"]["Height"].'px'.' 大小:'.round($exif["FileSize"]/1024).'KB';
    //分辨率单位判断
    switch($exif["ResolutionUnit"]){
    case 0:$Unit='';
    break;
    case 1:$Unit='inch';
    break;
    case 2:$Unit='cm';
    break;
    }
    //判断为空不显示分辨率信息
    if($exif["XResolution"]=='' || $exif["YResolution"]==''){
        $fenbianlv = '';
    }else{
        $fenbianlv = ' 水平分辨率:'.$exif["XResolution"].$Unit.' 垂直分辨率:'.$exif["YResolution"].$Unit;
    }
    //判断是否有EXIF,有的话输出信息
    if($exif===false){
        return '该图片没有EXIF信息!';
    }
    else{
        return $qicai.$canshu.$chicun.$fenbianlv;
    }
}