2012-04-16 59 views
10

Tengo algunos problemas con una imagen que tiene datos EXIF ​​/ IPTC almacenados en ella.
Cuando uso imageCreateFromJpeg (para rotar/recortar, etc.), el archivo recién almacenado no conserva los datos EXIF ​​/ IPTC.Copie una imagen y conserve sus datos EXIF ​​/ IPTC con PHP imageCreateFromJpeg?

Mi código actual es el siguiente:

<?php 
// Before executing - EXIF/IPTC data is there (checked) 
$image = "/path/to/my/image.jpg"; 
$source = imagecreatefromjpeg($image); 
$rotate = imagerotate($source,90,0); 
imageJPEG($rotate,$image); 
// After executing - EXIF/IPTC data doesn't exist anymore. 
?> 

estoy haciendo algo mal?

Respuesta

7

No está haciendo nada incorrecto, pero GD no se ocupa en absoluto de los datos de IPTC ya que está más allá del alcance de lo que hace GD.

Deberá utilizar una biblioteca de terceros u otra extensión de PHP para leer los datos de la imagen de origen y volver a insertarlos en la imagen de salida creada por imagejpeg.

Estas son algunas bibliotecas de interés: pel (php exif library), un ejemplo en php.net que muestra cómo use pel a hacer lo que quiera, php metadata toolkit, iptcembed() function.

+0

Ahh ... ¿En otras palabras, tengo que copiar los datos EXIF ​​/ IPTC y almacenar en la nueva imagen? – tftd

+2

Correcto, ya sea antes o después de crear la imagen, tendrá que extraer los metadatos de la imagen de origen. Como está utilizando 'imagejpeg' para generar la imagen final, debe escribirla en la imagen final después de haberla guardado. – drew010

+0

Gracias por la ayuda :) – tftd

Cuestiones relacionadas