2008-10-23 16 views
19

Na naszej stronie możemy uzyskać dużą liczbę zdjęć przesłanych z różnych źródeł.Jak dodać dane EXIF ​​do obrazu?

Aby zachować rozmiary plików w dół, możemy rozebrać cały exif data ze źródła przy użyciu mogrify:

mogrify -strip image.jpg 

Co chcielibyśmy, aby móc zrobić to wstawić podstawowe dane EXIF ​​(Copyright Initrode , itp.) z powrotem na ten nowy "czysty" obraz, ale nie mogę znaleźć niczego w dokumentach, które by to osiągnęły.

Czy ktoś ma takie doświadczenie?

Jeśli nie da się tego zrobić za pomocą imagemagick, rozwiązanie oparte na PHP byłoby kolejną najlepszą rzeczą!

Dzięki.

Odpowiedz

13

można zaoszczędzić znaczną ilość miejsca, zwłaszcza jeśli masz dużą liczbę obrazów ..

Dodajemy poniższy tekst.txt (format tagów IPTC zaczerpnięte z here):

2#110#Credit="My Company" 
2#05#Object Name="THE_OBJECT_NAME" 
2#55#Date Created="2011-02-03 12:45" 
2#80#By-line="BY-LINE?" 
2#110#Credit="The CREDIT" 
2#115#Source="SOURCE" 
2#116#Copyright Notice="THE COPYRIGHT" 
2#118#Contact="THE CONTACT" 
2#120#Caption="AKA Title" 

Strip wszystkie istniejące dane EXIF ​​z obrazem

mogrify -strip image.jpg 

Dodaj kredytu do obrazu

mogrify -profile 8BIMTEXT:text.txt image.jpg 
+1

To ładnie, okrzyki! – ConroyP

+0

Ktokolwiek zna składnię dodawania tagów tematów, zaktualizuj rozwiązanie. –

12

Exiftool Wygląda na to, że pasuje do Ciebie.

Nie próbowałem, ale mam ochotę pójść i naprawić wszystkie moje zdjęcia miesiąca miodowego oznaczone jako 01/01/2074, ponieważ zapomniałem zresetować datę po śmierci baterii.

+0

Dzięki - najwyższa wskazówka. Wyciągnij mnie z dziury. –

6

Oto PHP Exif Library, który powinien zrobić to, czego potrzebujesz.

PHP Exif Library (PEL) pozwala pełni manipulować Exif (wymienne Obraz File Format) danych. Jest to dane z , które aparaty cyfrowe umieszczają w swoich obrazach, takich jak data i czas, czas otwarcia migawki, wartość ISO i tak .

Korzystając z PEL, można w pełni zmodyfikować dane Exif, co oznacza, że ​​można je czytać i zapisywać zarówno w postaci . Całkowicie nowe dane Exif można również dodać do zdjęć. PEL jest napisany całkowicie w PHP i zależy tylko od standardowej instalacji PHP, wersja 5. PEL to hostowane na SourceForge.

+0

Ten link jest już martwy. – GreenMatt

+0

PEL jest teraz hostowany na github http://lsolesen.github.io/pel/ –

1

Wątpię zyskasz dużo miejsca przez usunięcie informacji Exif ...

Zresztą, mogę się mylić, ale metadane Exif należy bardziej do przechowywania techniczną (i) informacje kontekstowe. W przypadku praw autorskich powinieneś użyć IPTC.

To jest coś, co można zrobić, najwyraźniej, z ImageMagick: Write IPTC Data to Jpeg with ImageMagick.

5

na linux tam to program o nazwie jhead. Można dodać minimalną nagłówka exif z poleceniem:

jhead -mkexif img.jpg

0

Można to zrobić bezpośrednio w PHP przy użyciu biblioteki PEL. Można by to zrobić, po prostu nadpisuje istniejący Exif-nagłówki,

// Load image data 
$data = new PelDataWindow(file_get_contents('IMAGE PATH')); 

// Prepare image data 
$jpeg = $file = new PelJpeg(); 
$jpeg->load($data); 

// Create new EXIF-headers, overwriting any existing ones (when writing to disk) 
$exif = new PelExif(); 
$jpeg->setExif($exif); 
$tiff = new PelTiff(); 
$exif->setTiff($tiff); 

// Create Ifd-data that will hold EXIF-tags 
$ifd0 = new PelIfd(PelIfd::IFD0); 
$tiff->setIfd($ifd0); 

// Create EXIF-data for copyright 
$make = new PelEntryAscii(PelTag::COPYRIGHT, '2008-2017 Conroy'); 
$ifd0->addEntry($make); 

// Add more EXIF-data... 

// Save to disk 
$file->saveFile('IMAGE.jpg'); 

można znaleźć pełną listę wszystkich obsługiwanych danych EXIF ​​(PelTag) in the PEL docs.

Powiązane problemy