PHP 画像操作: 画像の Exif 情報を解析して変更する方法

王林
リリース: 2023-08-26 15:50:02
オリジナル
1850 人が閲覧しました

PHP 画像操作: 画像の Exif 情報を解析して変更する方法

PHP 画像操作: 画像の Exif 情報を解析して変更する方法

Web 開発では、画像操作が一般的な要件です。画像の Exif 情報 (Exchangeable Image File Format) を解析して変更する必要がある場合があります。 Exif情報には、写真の撮影機器、撮影時間、撮影パラメータなどの重要なデータが含まれており、一部の写真管理や表示機能において、Exif情報を解析・変更できると非常に便利です。この記事では、PHPを使って画像のExif情報を解析・変更する方法を紹介します。

  1. 画像の Exif 情報を解析する

まず、PHP の Exif 拡張機能を使用して画像の Exif 情報を読み取る必要があります。以下は画像の Exif 情報を読み取るサンプルコードです。

$filePath = "path/to/image.jpg"; $exifData = exif_read_data($filePath); if ($exifData === false) { echo "无法解析图片的Exif信息"; } else { // 打印解析得到的Exif信息 print_r($exifData); }
ログイン後にコピー

上記のコードでは、まず操作対象の画像のパスを指定し、次にexif_read_dataを使用します。画像のExif情報を読み取る機能。読み取りが成功すると、$exifDataは解析された Exif データを保存します。最後に、解析された Exif 情報を出力します。

  1. 写真の Exif 情報を変更する

場合によっては、撮影日や撮影場所などの調整など、写真の Exif 情報を変更する必要があります。 PHP には、Exif 情報を変更できないexif_read_data関数が用意されていますが、他の方法を使用してこの目的を達成することもできます。

2.1 ライブラリを使用して Exif 情報を変更する

サードパーティのライブラリを使用して画像の Exif 情報を変更できます。一般的に使用されるライブラリの 1 つはexiftool# です。 ##。このライブラリは、画像の Exif 情報を簡単に変更できるコマンド ライン ツールを提供します。 PHP のexec関数を使用してコマンド ライン操作を実行し、Exif 情報を変更するタスクを完了できます。以下は、exiftoolライブラリを使用して Exif 情報を変更するサンプルコードです。

$filePath = "path/to/image.jpg"; $exifToolPath = "/path/to/exiftool"; // exiftool命令行工具的路径 $exifData = [ "DateTimeOriginal" => "2021-01-01 12:00:00", "Location" => "New York" ]; foreach ($exifData as $key => $value) { $cmd = $exifToolPath . " -" . $key . "="" . $value . "" " . $filePath; exec($cmd); } // 重新读取修改后的Exif信息 $modifiedExifData = exif_read_data($filePath); // 打印修改后的Exif信息 print_r($modifiedExifData);
ログイン後にコピー

上記のコードでは、まず操作対象の画像のパスと、画像のパスを指定します。 exiftoolコマンドラインツール。次に、変更する Exif 情報を定義します。これは、

key => valueの形式で$exifData配列に保存されます。次に、foreachを使用して$exifDataをループし、コマンド ライン操作を構築し、exec関数を使用してコマンド ライン操作を実行します。最後に、exif_read_data関数を使用して、変更された Exif 情報を再読み取り、出力します。

2.2 PHP ライブラリを使用して Exif 情報を変更する

サードパーティのライブラリを使用することに加えて、PHP ライブラリを使用して画像の Exif 情報を変更することもできます。よく使用されるライブラリの 1 つとして、画像の Exif 情報を操作する機能を提供する

PHPExifがあります。以下は、PHPExifライブラリを使用して Exif 情報を変更するサンプル コードです。

$filePath = "path/to/image.jpg"; $exifData = [ "DateTimeOriginal" => "2021-01-01 12:00:00", "Location" => "New York" ]; use PHPExifExif; // 读取图片的Exif信息 $exif = Exif::factory($filePath); $exifDataOld = $exif->getData(); // 修改Exif信息 foreach ($exifData as $key => $value) { $exif->setTag($key, $value); } // 保存修改后的Exif信息到文件 $modifiedExifData = $exif->getData(); $exif->save($modifiedExifData, $filePath); // 重新读取修改后的Exif信息 $exif = Exif::factory($filePath); $modifiedExifData = $exif->getData(); // 打印修改后的Exif信息 print_r($modifiedExifData);
ログイン後にコピー
上記のコードでは、まず操作対象の画像のパスを指定します。次に、変更する Exif 情報を定義します。これは、

key => valueの形式で$exifData配列に保存されます。次に、useキーワードを使用してPHPExifExifクラスを導入し、Exif::factoryメソッドを使用して画像の Exif 情報を読み取ります。次に、foreachを使用して$exifDataをループし、setTagメソッドを使用して Exif 情報を変更します。次に、saveメソッドを使用して、変更した Exif 情報をファイルに保存します。最後に、Exif::factoryメソッドを通じて変更された Exif 情報を再読み取り、出力します。

概要

この記事では、PHP を使用して画像の Exif 情報を解析および変更する方法を紹介します。

exif_read_data関数を使用して画像の Exif 情報を解析し、サードパーティ ライブラリまたは PHP ライブラリを使用して画像の Exif 情報を変更できます。これらの手法を利用することで、さまざまなニーズに合わせて写真のExif情報を簡単に操作することができます。この記事が PHP で画像の Exif 情報を操作するのに役立つことを願っています。

以上がPHP 画像操作: 画像の Exif 情報を解析して変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!