現在の位置: ホーム> 最新記事一覧> PHP チュートリアル: Exif 拡張子を使用して写真のフォーカス情報を抽出する

PHP チュートリアル: Exif 拡張子を使用して写真のフォーカス情報を抽出する

M66 2025-11-03

導入

デジタル写真の普及に伴い、撮影される写真の数は増え続けています。写真愛好家にとって、写真のメタデータ情報を理解することは非常に重要です。この記事では、写真をより深く理解できるように、PHP および Exif 拡張機能を使用して写真の焦点距離情報を抽出する方法を紹介します。

Exifデータとは何ですか?

Exchangeable Image File Format (Exchangeable Image File Format) は、Exif と呼ばれ、デジタル写真情報を記録するためのファイル形式です。焦点距離、ISO、シャッタースピードなどの撮影パラメータと写真の環境情報が保存されます。PHP の Exif 拡張機能は、このデータの処理と抽出を容易にする一連の関数を提供します。

Exif 拡張機能のインストールと構成

Exif 拡張機能を使用する前に、PHP に拡張機能がインストールされているかどうかを確認する必要があります。これは次のコマンドで確認できます。

 php -m | grep exif

「exif」が出力されていればインストールされています。インストールされていない場合は、次の手順に従ってインストールできます。

ターミナルで実行します:

 sudo apt-get install php-exif

php.ini ファイルを編集します。

 sudo nano /etc/php/7.4/cli/php.ini

次の行を見つけてコメントを解除します。

 ;extension=exif

ファイルを保存して終了し、PHP を再起動します。

 sudo service php7.4-fpm restart

写真の焦点距離情報を抽出する

exif_example.php などの PHP スクリプトを作成し、写真を同じディレクトリに配置します。関数exif_read_data()を通じて写真の Exif データを読み取ります。

 <?php
$filename = 'example.jpg'; // 写真ファイル名
$exif_data = exif_read_data($filename, 0, true);
?>

焦点距離情報が存在するかどうかを判断し、出力します。

 <?php
if (isset($exif_data['EXIF']['FocalLength'])) {
 $focal_length = $exif_data['EXIF']['FocalLength'];
 echo "写真の焦点距離は、:{$focal_length}mm";
} else {
 echo "写真の焦点距離情報の取得に失敗しました。";
}
?>

実行してテストする

スクリプトを保存した後、ターミナルで実行します。

 php exif_example.php

写真に焦点距離の情報が含まれている場合は、次のように表示されます。

 写真の焦点距離は、:50mm

そうしないと、焦点距離情報が取得できない旨のメッセージが表示されます。

要約する

PHP の Exif 拡張機能を使用して写真の焦点距離情報を抽出するのは簡単ですが、すべての写真にその情報が含まれているわけではありません。写真を処理するときは、例外処理を行う必要があります。この記事の方法を使用すると、写真の学習や作品管理を容易にする写真のメタデータをすぐに取得できます。