Domanda

Sul nostro sito riceviamo una grande quantità di foto caricate da varie fonti.

Al fine di mantenere basse le dimensioni del file, eliminiamo tutti i dati exif dalla fonte usando mogrify :

mogrify -strip image.jpg

Quello che vorremmo poter fare è inserire alcuni dati exif di base (Copyright Initrode, ecc.) su questo nuovo "pulito". immagine, ma non riesco a trovare nulla nei documenti che possa raggiungere questo obiettivo.

Qualcuno ha esperienza di farlo?

Se non è possibile farlo tramite imagemagick, una soluzione basata su PHP sarebbe la prossima cosa migliore!

Grazie.

È stato utile?

Soluzione

Puoi risparmiare una grande quantità di spazio, specialmente se hai un gran numero di immagini ..

Aggiungi quanto segue a text.txt (formato dei tag IPTC presi da qui ):

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"

Rimuovi tutti i dati exif dall'immagine

mogrify -strip image.jpg

Aggiungi il credito alla tua immagine

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

Altri suggerimenti

Exiftool sembra che corrisponderebbe esattamente a te.

Non l'ho provato ma ora sono tentato di andare a riparare tutte le mie foto per la luna di miele che sono contrassegnate il 01/01/2074 perché ho dimenticato di ripristinare la data dopo la fine delle batterie.

Ecco una PHP Exif Library che dovrebbe fare ciò di cui hai bisogno.

  

La PHP Exif Library (PEL) ti consente   manipolare completamente Exif (scambiabile   Dati formato immagine). Questo è il   dati in cui sono posizionate le fotocamere digitali   le loro immagini, come la data e   tempo, tempo di posa, valore ISO e così via   on.

     

Usando PEL, si può modificare completamente il file   Dati Exif, nel senso che possono essere entrambi   letto e scritto. Exif completamente nuovo   i dati possono anche essere aggiunti alle immagini. PEL   è scritto completamente in PHP e   dipende da niente tranne uno standard   installazione di PHP, versione 5. PEL è   ospitato su SourceForge.

su Linux esiste un programma chiamato jhead. Può aggiungere un'intestazione exif minima con il comando:

jhead -mkexif img.jpg

Dubito che guadagnerai molto spazio rimuovendo le informazioni Exif ...

Ad ogni modo, posso sbagliarmi, ma i metadati di Exif appartengono più alla memorizzazione di informazioni tecniche (e contestuali). Per cose come il copyright, dovresti usare IPTC invece.

Questo è qualcosa che puoi fare, a quanto pare, con ImageMagick: Scrivi dati IPTC su Jpeg con ImageMagick .

Puoi farlo direttamente in PHP usando la libreria PEL . Lo faresti semplicemente sovrascrivendo le intestazioni EXIF ??esistenti,

// 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');

Puoi trovare un elenco completo di tutti i dati EXIF ??(PelTag) supportati nei documenti PEL .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top