exifデータを画像に追加するにはどうすればよいですか?
-
04-07-2019 - |
解決
特に大量の画像がある場合は、大量のスペースを節約できます。
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
他のヒント
Exiftool は、完全に一致するように見えます。
試したことはありませんが、バッテリーが切れた後に日付をリセットするのを忘れたため、今では01/04/2074とマークされているすべての新婚旅行の写真を修正しようとしています。
必要なことを行う PHP Exifライブラリがあります。
PHP Exifライブラリ(PEL)を使用すると、 Exifを完全に操作する(交換可能 画像ファイル形式)データ。これは デジタルカメラが配置するデータ 日付などの画像 時間、シャッタースピード、ISO値など オン。
PELを使用すると、 Exifデータ。つまり、両方の可能性があります。 読み書き。完全に新しいExif データを画像に追加することもできます。ペル 完全にPHPで書かれており、 標準以外に依存しない PHPバージョン5のインストール。PELは SourceForgeでホストされています。
Linuxには、jheadというプログラムがあります。次のコマンドで最小限のexifヘッダーを追加できます。
jhead -mkexif img.jpg
Exif情報を削除することで多くのスペースが得られるとは思わない...
とにかく、私は間違っている可能性がありますが、Exifメタデータは、技術(およびコンテキスト)情報を保存するためのものです。著作権などの場合は、代わりにIPTCを使用する必要があります。
これはImageMagickでできることです。 ImageMagickでJpegにIPTCデータを書き込む。
PEL ライブラリを使用して、PHPで直接これを行うことができます。これを行うには、既存の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ドキュメント内。