Mostrar los datos EXIF
Autor: jgarcia | Archivado en: PHP, Recursos el día 9/Jun/2005
Cuando se obtiene una instantánea con una cámara digital el fichero que contiene la imagen almacena también un conjunto de datos como la fecha y hora de captura, modelo de la cámara, abertura de diafragma, velocidad de obturación, ISO… A este conjunto de datos se le conoce con el nombre de EXIF
EXIF (Exchangeable Image File) es el formato de archivo utilizado por la mayoría de las cámaras digitales para insertar datos técnicos sobre la captura en la imágen.
Para poder leer los datos EXIF de nuestras fotografías, podemos utilizar las Propiedades/Opciones Avanzadas de Windows XP, el programa Adobe PhotoShop, el programa Exif Reader (freeware) entre otros.
Si lo que deseamos es mostrar esos datos en nuestra web o photoblog podemos utilizar la función de PHP exif_read_data() que devuelve los datos EXIF de una imagen JPEG o TIFF.
Para jggweb he creado esta pequeña función que nos devuelve el modelo de la cámara, la velocidad de obturación, la abertura de diafragma y la longitud focal:
<?php
function Datos_EXIF($imagen)
{
//*****************************************************************
// Función Datos_EXIF
// Objetivo de la función:
// Devuelve el modelo de la cámara, velocidad de obturación,
// abertura de diafragma y longitud focal de una imagen.
// Argumento de entrada:
// $imagen: Una cadena que contendrá el nombre de la imagen.
//
// Autor: jgarcía
// Web: www.bitacoradewebmaster.com
// Fecha: junio 2005
//*****************************************************************// Asignamos todos los datos EXIF a un array llamado $exif
$exif = exif_read_data($imagen, ‘EXIF’);// Si la imagen no tiene datos EXIF abortamos la ejecución
if ($exif===false)
{
echo “<h5>Sin datos EXIF</h5><br />n”;
exit();
}$exif = exif_read_data($imagen, 0, true);
//Comenzamos a presentar datos EXIF
echo “<strong>Cámara: “.$exif["IFD0"]["Model"].”<br />n”;list($numeradorV, $denominadorV) = split( ‘[/]‘, $exif["EXIF"]["ExposureTime"]);
if ($numeradorV< $denominadorV)
{
$denominadorV=$denominadorV/10;
echo "Velocidad de obturación: 1/".$denominadorV."sg.<br />n";
}
else
{
$velocidad=$numeradorV/$denominadorV;
echo "Velocidad de obturación: ".$velocidad."sg<br />n";
}list($numeradorA, $denominadorA) = split( '[/]', $exif["EXIF"]["FNumber"]);
$numeradorA=$numeradorA/10;
echo "Abertura de diafragma: f".$numeradorA."<br />n";list($numeradorL, $denominadorL) = split( '[/]', $exif["EXIF"]["FocalLength"]);
$numeradorL=$numeradorL/10;
echo "Longitud focal: ".$numeradorL."mm</strong><br />n";
}
?>
Para hacer uso de la función debemos escribir el siguiente código:
<?php
//En el fichero funciones.php debemos tener la función Datos_EXIF()
require_once(”funciones.php”);
Datos_EXIF(”imagen.jpg”);
?>
Importante: No olvides leer este artículo.
Si deseas añadir más datos EXIF sólo tienes que hacer referencia al elemento del array asociativo que te interese. La lista de datos EXIF la tienes en la siguiente página.












No pense que habia tantos datos, gracias por la informacion amigos, un saludo a todos
Pues anda! no tenía ni idea de esto.
Muy interesante, muchas gracias :)
Buenas
Muchas gracias por el artículo, me ha sido muy útil.
Os dejo el código que he utilizado yo para en una galería poner el título exif de una imagen:
Me ha sido útil ya que esta información se puede añadir simplemente clicando con el botón derecho sobre la imagen en el explorador de Windows.
Luego tengo un script para que la galería se me genere automáticamente a partir de las imágenes subidas a un directorio. Y esto me sirve para agregarles la descripción.
Perdón este es el código: