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

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

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

mogrify -strip image.jpg

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

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

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

Спасибо.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
22
0
44 985
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

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

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

Спасибо - лучший совет. Вытащил меня из ямы.

Greg Whitfield 25.01.2009 03:33

Вот Библиотека PHP Exif, который должен делать то, что вам нужно.

The PHP Exif Library (PEL) lets you fully manipulate Exif (Exchangeable Image File Format) data. This is the data that digital cameras place in their images, such as the date and time, shutter speed, ISO value and so on.

Using PEL, one can fully modify the Exif data, meaning that it can be both read and written. Completely new Exif data can also be added to images. PEL is written completely in PHP and depends on nothing except a standard installation of PHP, version 5. PEL is hosted on SourceForge.

Эта ссылка теперь мертва.

GreenMatt 13.07.2016 06:52

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

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

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

Ответ принят как подходящий

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

Добавьте в 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

Кто знает синтаксис добавления тегов тем, обновите решение.

Arie Skliarouk 24.07.2011 17:58

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

jhead -mkexif img.jpg

Вы можете сделать это прямо в 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');

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

Другие вопросы по теме