<?php
error_reporting(0);
$iptc = null; $exif = null;  /** * Initialise le module IPTC */ function initIptc($img) {  $size = getimagesize ( $img, $info); if(is_array($info)) { $iptc = iptcparse($info['APP13']); return $iptc; } else { return null; } }   /** * Initialise le module EXIF */ function initExif($img) {  $BoolExif = @exif_read_data($img,'IFD0'); if ($BoolExif == false) return null; else return @exif_read_data ($img,0,true); }  /** * Renvoie le tableau des infos EXIF */ function printInfoExif($img) {  $exif = @exif_read_data ($img,0,true); foreach($exif as $key=>$section) { foreach($section as $name=>$val) { echo "$key.$name: $val<br>\n"; } } echo "<table border='1'>"; echo 	"<tr>"; echo 		"<td>Clé EXIF</td>"; echo 		"<td>Valeur</td>"; echo 	"</tr>"; foreach($exif as $key => $value) { foreach($value as $innerkey => $innervalue) { echo "<tr><td>$key.$innerkey</td>"; echo "<td>$innervalue</td></tr>"; } } }  /** * Renvoie le tableau des infos IPTC */ function printInfoIptc($img) {  $size = getimagesize ($img, $info); if(is_array($info)) { $iptc = iptcparse($info["APP13"]); foreach (array_keys($iptc) as $s) { $c = count ($iptc[$s]); for ($i=0; $i <$c; $i++) { echo $s.'-'.$i.' = '.$iptc[$s][$i].'<br>'; } } }  }   function getTitreIptc($img) {  $iptc=null; $info=null; $size = GetImageSize ( $img, $info); if (is_array($info) ) { if( isset($info["APP13"])) $iptc = iptcparse($info["APP13"]); if (isset($iptc["2#005"])) return $iptc["2#005"][0]; else return ''; }else{  return '';  } }  function getKeyWordIptc($img) { $iptc=null; $info=null; $size = getimagesize ( $img, $info); $chaine = ""; if (is_array($info) ) { if( isset($info["APP13"])) $iptc = iptcparse($info["APP13"]); if (isset($iptc["2#025"])) { $c = count ($iptc["2#025"]); for ($i=0; $i <$c; $i++) { if ($i==$c-1) $chaine = $chaine.$iptc["2#025"][$i].". "; else $chaine = $chaine.$iptc["2#025"][$i].", "; }  }  }  return $chaine;  }  function getLegendeIptc($img) { $iptc=null; $info=null; $size = getimagesize ( $img, $info); if (is_array($info) ) { if( isset($info["APP13"])) $iptc = iptcparse($info["APP13"]); if (isset($iptc["2#120"])) return $iptc["2#120"][0]; else return ''; }else{  return '';  } }   function getPhotogIptc($img) { $iptc=null; $info=null; $size = getimagesize ( $img, $info); if (is_array($info) ) { if( isset($info["APP13"])) $iptc = iptcparse($info["APP13"]); if (isset($iptc["2#080"])) return $iptc["2#080"][0]; else return ''; }else{  return '';  } }   function getVilleIptc($img) { $iptc=null; $info=null; $size = getimagesize ( $img, $info); if (is_array($info) ) { if( isset($info["APP13"])) $iptc = iptcparse($info["APP13"]); if (isset($iptc["2#090"])) return $iptc["2#090"][0]; else return ''; }else{  return '';  } }   function getPaysIptc($img) { $iptc=null; $info=null; $size = getimagesize ( $img, $info); if (is_array($info) ) { if( isset($info["APP13"])) $iptc = iptcparse($info["APP13"]); if (isset($iptc["2#095"])) return $iptc["2#095"][0]; else return ''; }else{  return '';  } }  /** * Renvoie la date de la prise de la photo */ function getDatePrise($img) { $result = ""; $exif = initExif($img); if ($exif != null && array_key_exists("DateTimeOriginal",$exif['EXIF']) ) { $result = $exif['EXIF']['DateTimeOriginal']; $annee = substr($result,0,4); $mois = substr($result,5,2); $jour = substr($result,8,2); if ($jour != "") $result = $jour."/".$mois."/".$annee; } return $result; } /** * Renvoie l'heure de la prise de la photo */ function getHeurePrise($img) { $result = ""; $exif = initExif($img); if ($exif != null && array_key_exists("DateTimeOriginal",$exif['EXIF']) ) { $result = $exif['EXIF']['DateTimeOriginal']; $result = substr($result,11,5); } return $result; }  /** * Renvoie la date et l'heure */ function getDateTimeOriginale($img) { $result = ""; $exif = initExif($img); if ($exif != null && array_key_exists("DateTimeOriginal",$exif['EXIF']) ) $result = $exif['EXIF']['DateTimeOriginal']; return $result; }  /** * Renvoie éventuellement la signature du dernier logiciel utilisé pour * traiter la photo ;) */ function getSoftMarker($img) { $result = ""; $exif = initExif($img); if ($exif != null && array_key_exists("Software",$exif['IFD0']) ) $result = $exif['IFD0']['Software']; return $result; } /** * Focale ?? voir aussi EXIF.FocalLength ??? */ function getApertureFNumber($img) { $result = ""; $exif = initExif($img); if ($exif != null && array_key_exists("ApertureFNumber",$exif['COMPUTED']) ) $result = $exif['COMPUTED']['ApertureFNumber']; return $result; }  /** * Temps d'exposition */ 
function getExposureTime($img) { 
	$result = ""; 
	$exif = initExif($img); 
	if ($exif != null && array_key_exists("ExposureTime",$exif['EXIF']) ) 
	 {
	 	$result = $exif['EXIF']['ExposureTime']; 
	 	
	 	if ( ereg("[/]",$result) )
	 	{
	 		  list($v1, $v2)= split ("/", $result);
	 	          $quot = $v1 / $v2; 
	 	          if ($quot>=1)
	 	          	$result = $quot." s.";
	 	          else 
	 	          	if ($v1<>1)
	 	           	{       
	 	           		$result = round($v2 / $v1); 
	 	           		$result ="1/".$result;
	 	                }
	 	}
	 }
	 return $result; 
	}
function getFocalLenght($img) { 
	$result = ""; 
	$exif = initExif($img); 
	if ($exif != null && array_key_exists("FocalLength",$exif['EXIF']) ) 
	{
		 $result =  $exif['EXIF']['FocalLength']; 
	 	if ( ereg("[/]",$result) )
	 	{
	 		  list($v1, $v2)= split ("/", $result);
	 	          $result = round($v1 / $v2); 
	 	          
	 	}	
	} 
	 
	 return  $result; 
	}  	  
	/** * Type d'exposition */ function getExposureValue($img) { $result = ""; $exif = initExif($img); if ($exif != null && array_key_exists("ExposureBiasValue",$exif['EXIF']) ) $result = $exif['EXIF']['ExposureBiasValue']; return $result; }  /** * Modele complet de l'appareil de photo */ function getAppareilModel($img) { $result = ""; $exif = initExif($img); if ($exif != null &&  array_key_exists("Model",$exif['IFD0']) ) $result = $exif['IFD0']['Model']; return $result; }  /** * Renvoie la largeur initiale de la prise */ function getOriginalWidth($img) { $result = ""; $exif = initExif($img); if ($exif != null && array_key_exists("ExifImageWidth",$exif['EXIF']) ) $result = $exif['EXIF']['ExifImageWidth']; return $result; }  /** * Renvoie la hauteur initiale de la prise */ function getOriginalHeight($img) { $result = ""; $exif = initExif($img); if ($exif != null && array_key_exists("ExifImageLength",$exif['EXIF']) ) $result = $exif['EXIF']['ExifImageLength']; return $result; } 


//Ajout V9 api jpmt extraction des markernotes
if (!isset($Toolkit_Dir))
$Toolkit_Dir="../marker/";
include_once $Toolkit_Dir . 'EXIF.php'; 

function getIso($img){

$iso="";



$exif = initExif($img); 
	if ($exif != null && array_key_exists("ISOSpeedRatings",$exif['EXIF']) ) 
	{
		 $iso =  $exif['EXIF']['ISOSpeedRatings']; 
	}	
//cas D70
if(strcmp( substr(getAppareilModel($img),0,7),"NIKON D")==0)
{
	$exif_data = get_EXIF_JPEG( $img );
	if (is_array($exif_data['Makernote_Tag']['Decoded Data'][0]))
	$iso=$exif_data['Makernote_Tag']['Decoded Data'][0][2]['Text Value'];
}
 return $iso;
}

function getObjo($img){

$objo="";

if(strcmp( substr(getAppareilModel($img),0,7),"NIKON D")==0)
{
$nikon1870= "18/1 (18), 70/1 (70), 35/10 (3.5), 45/10 (4.5)  mm, mm, F#, F#";
$nikon180700= "180/10 (18), 700/10 (70), 35/10 (3.5), 45/10 (4.5)  mm, mm, F#, F#";
$sigma150= "150/1 (150), 150/1 (150), 28/10 (2.8), 28/10 (2.8)  mm, mm, F#, F#";
$sigma1500= "1500/10 (150), 1500/10 (150), 28/10 (2.8), 28/10 (2.8)  mm, mm, F#, F#";

$exif_data = get_EXIF_JPEG( $img );

if (is_array($exif_data['Makernote_Tag']['Decoded Data'][0])){
	$objo=$exif_data['Makernote_Tag']['Decoded Data'][0][132]['Text Value'];
  $objo=str_replace(chr(10), chr(32), $objo);
 
         //Tests pour nommer les différents objos :) 
         if(strcmp($objo,$nikon1870)==0 || strcmp($objo,$nikon180700)==0 ) 
         $objo="Nikon 18-70mm F/3.5-4.5 DX"; 
         else if( 
         strcmp( $objo,$sigma150)==0 ||strcmp( $objo,$sigma1500)==0 ) $objo="Sigma 150mm F/2.8 EX";  
         else 
         {  
         $tabObjo = explode(chr(32),$objo) ; 
         //test objo fixe
         if( $tabObjo[1]==$tabObjo[3] )
         	$objo= $tabObjo[1]."mm F/".$tabObjo[5];
         else
         	$objo= $tabObjo[1]."-".$tabObjo[3]."mm F/".$tabObjo[5]."-".$tabObjo[7];
         $objo=str_replace(')', '', $objo);
         $objo=str_replace('(', '', $objo);
         $objo=str_replace(',', '', $objo);
         
         }    
    }
 }
    return $objo;
}
?> 