Cuando se manejan imágenes de agencias y/o propias que tienen cierta información incrustada en el archivo JPG es necesario para almacenar o manipular tener dichos datos de manera amable. Hay varios métodos para obtener la información, para ver el contenido de EXIF de forma cruda podemos utilizar el script llamado exiftool desde la línea de comandos:
sudo apt-get install exiftool # sólo en caso que no esté instalado # suponiendo que el archivo está en /tmp/example.jpg y queremos la información en JSON: exiftool -j /tmp/example.jpg # lo anterior nos genera una salida tipo: [{ "SourceFile": "/tmp/example.jpg", "ExifToolVersion": 9.46, "FileName": "example.jpg", "Directory": "/tmp", "FileSize": "3.2 MB", "FilePermissions": "rw-r--r--", "FileType": "JPEG", "MIMEType": "image/jpeg", "n": "n" }]
Esa información que nos regresa trae datos interesantes como el tipo de cámara con la cual fue tomada (si no está editado el archivo y eliminada dicha información), velocidad de disparo, ISO y otras cuestiones técnicas. Además de alguna descripción breve de la foto, aunque si queremos más información es necesario obtener las etiquetas IPTC.
Para IPTC vamos a utilizar un script escrito en PHP y obtendremos la información para por ejemplo mostrarla en una página web o bien almacenarla en una base de datos para después utilizarla.
<?php /* obtener información IPTC de imagen @ToRo */ $file ="/tmp/example.jpg"; getimagesize($file,$info); $info = iptcparse($info["APP13"]); //definimos algunas etiquetas $meta = Array( "2#080" => "autor", "2#090" => "ciudad", "2#101" => "pais", "2#120" => "descripcion", "2#105" => "title", "2#015" => "categ", "2#025" => "keywords" ); if(!empty($info)) { $foto = []; //información foreach($info AS $tag => $tdata) { if(isset($meta[$tag])) { $foto[$meta[$tag]] = implode(" ",$tdata); } } print_r($foto); }
Hasta ahí y si tiene información tendríamos los datos en el array $foto. Por supuesto, hay más etiquetas pero esas son las que normalmente llenan los editores de fotografía como Ligthroom o Photoshop.
Una vez procesada la información ya la podemos manipular conforme a nuestras necesidades. Con este tipo de herramientas es posible obtener la información de la ubicación (GPS) en caso de que traiga de donde fue tomada la fotografía.
https://panchito-kardashian.tar.mx/media/2016/11/exif.png