2012-08-27 9 views
5

Zajmuję się tworzeniem skryptu procesora obrazu w celu zmiany rozmiaru obrazów. Problem polega na tym, że kiedy robię kopię obrazu o zmienionym rozmiarze, nie kopiuje ona również danych IPTC. Sprawdzałem więc funkcje PHP IPTC (iptcparse i iptcembed), ale jestem całkiem zdezorientowany. Używanie iptcparse jest bardzo proste. Otrzyma wszystkie dane do tablicy, a następnie wydrukuję ją za pomocą polecenia print_r. Ale podobno przydatny jest iptcembed, ponieważ pozwala (jak sama nazwa wskazuje) osadzić IPTC na twoich obrazach. Obserwując przykład z php.net, nie rozumiem tego. Czy muszę ręcznie utworzyć moją tablicę, aby osadzić ją na nowym obrazie. Sądzę, że istnieje prosty sposób na skopiowanie jednego obrazu IPTC i osadzenie go w innym obrazie.Jak skopiować dane IPTC z jednego obrazu do drugiego?

Każda odpowiedź będzie mile widziane. Z góry dzięki.

+2

Powodem nie otrzymujesz dane IPTC w nowy Obraz jest taki, że obraz o zmienionym rozmiarze jest tworzony z pustego obiektu obrazu PHP, więc nie dziedziczy żadnej z informacji meta ze starszego obrazu. Sprawdź również http://stackoverflow.com/questions/24456/embedding-iptc-image-data-with-php-gd?rq=1 –

Odpowiedz

1

Myślę, że to całkiem proste. Aby pobrać dane iptc ze starego obrazu, wystarczy użyć funkcji getimagesize i iptcparse.

Na php.net znalazłeś ten przykład, aby osiągnąć ten

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

Kombajny tej próbki metodą iptcembed i masz wszystko, czego potrzebujesz