2012-08-27 11 views
5

Sto sviluppando uno script per l'elaborazione di immagini per ridimensionare sostanzialmente le immagini. Il problema è che quando eseguo la copia ridimensionata dell'immagine, non copia i dati IPTC. Quindi ho controllato le funzioni PHP IPTC (iptcparse e iptcembed) ma sono abbastanza confuso. L'utilizzo di iptcparse è molto semplice. Raccoglie tutti i dati in un array e poi lo stampo con print_r. Ma quello presumibilmente utile è iptcembed perché ti permette di (come dice il nome) di incorporare IPTC sulle tue immagini. Guardando l'esempio da php.net non lo capisco. Devo creare manualmente il mio array per incorporarlo nella nuova immagine. Immagino che ci sia un modo semplice per copiare solo i dati di IPTC di un'immagine e incorporarli in un'altra immagine.Come copiare i dati IPTC da un'immagine all'altra?

Qualsiasi risposta sarà gradita. Grazie in anticipo.

+2

Il motivo che non stanno ottenendo i dati IPTC nella nuova l'immagine è perché l'immagine ridimensionata viene creata da un oggetto immagine vuota di PHP, quindi non eredita alcuna meta informazione dall'immagine precedente. Controlla anche http://stackoverflow.com/questions/24456/embedding-iptc-image-data-with-php-gd?rq=1 –

risposta

1

Penso, questo è abbastanza semplice. Per ottenere i dati iptc dalla vecchia immagine, è sufficiente utilizzare le funzioni getimagesize e iptcparse.

Su php.net hai trovato questo esempio per raggiungere questo

<?php 
$size = getimagesize('./test.jpg', $info); 
if(isset($info['APP13'])) 
{ 
    $iptc = iptcparse($info['APP13']); 
    var_dump($iptc); 
} 
?> 

Combinate questo campione con il metodo iptcembed e si dispone di tutto il necessario

Problemi correlati