PHP 画像操作: 画像の Exif 情報を解析して変更する方法
Web 開発では、画像操作が一般的な要件です。画像の Exif 情報 (Exchangeable Image File Format) を解析して変更する必要がある場合があります。 Exif情報には、写真の撮影機器、撮影時間、撮影パラメータなどの重要なデータが含まれており、一部の写真管理や表示機能において、Exif情報を解析・変更できると非常に便利です。この記事では、PHPを使って画像の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 情報を出力します。
場合によっては、撮影日や撮影場所などの調整など、写真の 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);
key => valueの形式で
$exifData配列に保存されます。次に、
foreachを使用して
$exifDataをループし、コマンド ライン操作を構築し、
exec関数を使用してコマンド ライン操作を実行します。最後に、
exif_read_data関数を使用して、変更された 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);
key => valueの形式で
$exifData配列に保存されます。次に、
useキーワードを使用して
PHPExifExifクラスを導入し、
Exif::factoryメソッドを使用して画像の Exif 情報を読み取ります。次に、
foreachを使用して
$exifDataをループし、
setTagメソッドを使用して Exif 情報を変更します。次に、
saveメソッドを使用して、変更した Exif 情報をファイルに保存します。最後に、
Exif::factoryメソッドを通じて変更された Exif 情報を再読み取り、出力します。
exif_read_data関数を使用して画像の Exif 情報を解析し、サードパーティ ライブラリまたは PHP ライブラリを使用して画像の Exif 情報を変更できます。これらの手法を利用することで、さまざまなニーズに合わせて写真のExif情報を簡単に操作することができます。この記事が PHP で画像の Exif 情報を操作するのに役立つことを願っています。
以上がPHP 画像操作: 画像の Exif 情報を解析して変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。