Подтвердить что ты не робот

Как добавить exif-данные к изображению?

На нашем сайте мы получаем большое количество фотографий, загруженных из разных источников.

Чтобы сохранить размеры файлов, мы выделяем все exif data из источника, используя mogrify:

mogrify -strip image.jpg

Что мы хотели бы сделать, это вставить некоторые базовые данные exif (Copyright Initrode и т.д.) обратно на это новое "чистое" изображение, но я не могу найти ничего в документах, которые достигнут это.

Есть ли у кого-нибудь опыт этого?

Если это невозможно сделать через imagemagick, решение на основе PHP будет следующей лучшей!

Спасибо.

4b9b3361

Ответ 1

Вы можете сэкономить большое пространство, особенно если у вас большое количество изображений.

Добавьте следующее в text.txt(формат тэгов IPTC, взятых из здесь):

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"

Удалите все существующие exif-данные с изображения

mogrify -strip image.jpg

Добавьте кредит к своему изображению

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

Ответ 2

Exiftool похоже, что это будет точное совпадение для вас.

Я не пробовал, но теперь я искушаюсь пойти и исправить все мои фотографии медового месяца, которые отмечены 01/01/2074, потому что я забыл reset дату после того, как батареи погибли.

Ответ 3

Здесь PHP Exif Library, который должен делать то, что вам нужно.

Библиотека PHP Exif (PEL) позволяет вам полностью управлять Exif (сменный Формат файла изображения). Это данные, которые цифровые камеры помещают в их изображения, такие как дата и время, выдержка затвора, значение ISO и т.д. на.

Используя PEL, можно полностью изменить Данные Exif, что означает, что это могут быть оба читать и писать. Полностью новый Exif данные также могут быть добавлены к изображениям. PEL полностью написана в PHP и зависит от ничего, кроме стандартного установка PHP, версия 5. PEL размещен на SourceForge.

Ответ 4

В linux есть программа, называемая jhead. Он может добавить минимальный заголовок exif с помощью команды:

jhead -mkexif img.jpg

Ответ 5

Я сомневаюсь, что вы получите много места, удалив информацию Exif...

В любом случае, я могу ошибаться, но метаданные Exif принадлежат больше для хранения технической (и контекстной) информации. Для таких вещей, как авторское право, вы должны использовать IPTC вместо этого.

Это то, что вы можете сделать, по-видимому, с ImageMagick: Запись данных IPTC в Jpeg с помощью ImageMagick.

Ответ 6

Вы можете сделать это непосредственно на PHP, используя библиотеку PEL. Вы сделали бы это, просто перезаписав существующие EXIF-заголовки,

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

В документах PEL можно найти полный список всех поддерживаемых EXIF-данных (PelTag) .