<?php
function exifimage($image) {
$tab = array(); // Tableau de sortie
if ( !function_exists( 'exif_read_data' ) ) { // Si la fonction n'existe pas (serveur trop ancien)
$tab[0] = "La fonction exif_read_data n'existe pas sur ce serveur !";
return $tab; // On sort immédiatement
} elseif (file_exists($image)) { // Sinon on vérifie si l'image existe
$exif = exif_read_data($image, 'IFD0'); // Et on lui applique la fonction exif_read_data
if ($exif === false) { // Si ça ne donne rien
return $tab; // On sort
//$info = 'Aucun en-tête de donnée n\'a été trouvé dans <strong>$image</strong>.<br />';
} else { // Si on a trouvé des infos
//$info = 'L'image <strong>$image</strong> contient des en-têtes :<br />';
$exif = exif_read_data($image, 0, true);
foreach ($exif as $clef => $section) { // On récupère les données pertinentes, section par section
if ($clef == 'FILE') {
$tab['Nom du fichier'] = (stristr($image, '.jpeg')) ? substr($section['FileName'],0,-5) : substr($section['FileName'],0,-4);
$tab['Type du fichier'] = $section['MimeType'];
$tab['Poids'] = round($section['FileSize']/1024 , '0').' Ko';
} elseif ($clef == 'COMPUTED') {
$tab['Largeur'] = $section['Width'];
$tab['Hauteur'] = $section['Height'];
$tab['Focale'] = isset($section['ApertureFNumber']) ? strtoupper($section['ApertureFNumber']) : '?';
} elseif ($clef == 'EXIF') {
if (isset($section['DateTimeOriginal'])) {
$temp = $section['DateTimeOriginal'];
$espace = explode( ' ', $temp );
$jour = explode( ':' , $espace[0] );
$tab['Prise de vue'] = $jour[2].'/'.$jour[1].'/'.$jour[0] .' à '.$espace[1];
} else $tab['Prise de vue'] = '?';
$tab['Temps d\'exposition'] = isset($section['ExposureTime']) ? $section['ExposureTime'].' secondes' : '?';
$tab['Vitesse ISO'] = isset($section['ISOSpeedRatings']) ? 'ISO-'.$section['ISOSpeedRatings'] : '?';
$tab['Compensation'] = isset($section['ExposureBiasValue']) ? $section['ExposureBiasValue'] : '?';
$tab['Longueur de la focale'] = isset($section['FocalLength']) ? $section['FocalLength'].' mm' : '?';
$tab['Ouverture maxi'] = isset($section['MaxApertureValue']) ? round($section['MaxApertureValue']/10, '1') : '?';
$tab['Distance du sujet'] = isset($section['SubjectDistance']) ? round($section['SubjectDistance']/100, '1').' m' : '?';
$tab['Mode flash'] = (!isset($section['Flash']) || ($section['Flash'] == 0)) ? 'Pas de flash' : $section['Flash'];
$tab['Longueur de focale pour un film 35 mm'] = isset($section['FocalLengthIn35mmFilm']) ? $section['FocalLengthIn35mmFilm'] : '?';
} elseif ($clef == 'IFD0') {
$tab['Résolution'] = isset($section['XResolution']) ? $section['XResolution'].' pixels/pouce' : '?';
$tab['Mots clés'] = isset($section['Keywords']) ? str_replace( ';' , ',' , $section['Keywords'] ) : '?';
$temp = isset($section['UndefinedTag:0x4746']) ? $section['UndefinedTag:0x4746'] : 0;
$tab['Notation'] = '';
for ($i = 0 ; $i < 5 ; $i++) {
if ($i < round($temp))
$tab['Notation'] .= '★'; // étoile pleine
else $tab['Notation'] .= '☆'; // étoile creuse
}
$tab['Titre'] = isset($section['Title']) ? utf8_encode($section['Title']) : '?';
$tab['Auteur'] = isset($section['Author']) ? $section['Author'] : 'inconnu';
$tab['Commentaires'] = isset($section['Comments']) ? $section['Comments'] : '?';
$tab['Marque de l\'appareil photo'] = isset($section['Make']) ? $section['Make'] : '?';
$tab['Modèle d\'appareil photo'] = isset($section['Model']) ? $section['Model'] : '?';
$tab['Objet'] = isset($section['Subject']) ? $section['Subject'] : '?';
//$tab['Mode de contrôle'] = $section[''];
//$tab['Date de création'] = $section[''];
//$tab['Date de modification'] = $section[''];
}
}
}
} else $tab[0] = "L'image n'existe pas ou bien son chemin est incorrect !";
return $tab;
}
?>