En la informatica estamos acostubrados a resolver muchas peticiones del cliente y es muy recurrente que soliciten quitar los metadatos de una imagen, pues con esta pequeña entrada os voy a explicar como hacerlo.
Primero leemos los metadatos de la imagen utilizando la función exif_read_data()
.
// Leemos los metadatos de la imagen
$metadatos = exif_read_data('/ruta/a/la/imagen.jpg');
Luego, recorremos todos los metadatos y eliminamos cada uno de ellos utilizando la función unset()
.
// Si hay metadatos en la imagen
if ($metadatos !== false) {
// Eliminamos todos los metadatos de la imagen
foreach ($metadatos as $key => $value) {
unset($metadatos[$key]);
}
Finalmente, guardamos la imagen sin metadatos utilizando la función exif_write_data()
.
// Guardamos la imagen sin metadatos
exif_write_data($imagen, $metadatos);
A continuación adjunto el script comnpleto.
<?php
// Ruta de la imagen
$imagen = '/ruta/a/la/imagen.jpg';
// Leemos los metadatos de la imagen
$metadatos = exif_read_data($imagen);
// Si hay metadatos en la imagen
if ($metadatos !== false) {
// Eliminamos todos los metadatos de la imagen
foreach ($metadatos as $key => $value) {
unset($metadatos[$key]);
}
// Guardamos la imagen sin metadatos
exif_write_data($imagen, $metadatos);
}
?>
Es importante tener en cuenta que esta función sólo eliminará los metadatos que sean leídos y escritos por la extensión EXIF de PHP. Si la imagen tiene metadatos que no son compatibles con EXIF, estos no serán eliminados.
Thnx