2012-04-16 9 views
10

Ho alcuni problemi con un'immagine che contiene dati EXIF ​​/ IPTC memorizzati.
Quando utilizzo imageCreateFromJpeg (per ruotare/ritagliare o ecc.) Il file appena memorizzato non conserva i dati EXIF ​​/ IPTC.Copia un'immagine e conserva i suoi dati EXIF ​​/ IPTC con PHP imageCreateFromJpeg?

mio codice attuale è simile al seguente:

<?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. 
?> 

sto facendo qualcosa di sbagliato?

risposta

7

Non si sta facendo nulla di male, ma GD non si occupa di Exif dei dati IPTC per nulla al di là dell'ambito di ciò che fa GD.

Sarà necessario utilizzare una libreria di terze parti o un'altra estensione PHP per leggere i dati dall'immagine di origine e reinserirla nell'immagine di output creata da imagejpeg.

Ecco alcune biblioteche di interesse: pel (php exif library), un esempio su php.net mostra come use pel a fare quello che vuoi, php metadata toolkit, iptcembed() function.

+0

Ahh ... Quindi, in altre parole, devo copiare i dati EXIF ​​/ IPTC e archiviarli nella nuova immagine? – tftd

+2

Correggere, prima o dopo aver creato l'immagine, sarà necessario estrarre i metadati dall'immagine sorgente. Dato che stai usando 'imagejpeg' per produrre l'immagine finale, devi scriverlo sull'immagine finale dopo averlo salvato. – drew010

+0

Grazie per l'aiuto :) – tftd

Problemi correlati