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

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

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 学習者の迅速な成長を支援します!