Exif.js
https://github.com/exif-js/exif-js
Table of Contents
使い方
ここではローカルサーバーに配置したHTMLファイルから使用します。
fileプロトコルでアクセスしている場合はCORS policyのエラーが発生し、正常に動作しません。
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
</head>
<body>
<img src="image.jpg" id="img">
<pre id="exifData"></pre>
<script>
window.onload=getExif;
function getExif() {
var img = document.getElementById("img");
EXIF.getData(img, function() {
var make = EXIF.getTag(this, "Make");
var model = EXIF.getTag(this, "Model");
var exifData = document.getElementById("exifData");
exifData.innerHTML = `${make} ${model}`;
});
}
</script>
</body>
</html>
CDNからライブラリ読込
<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
Exifデータを取得する画像のimgタグとExifデータ表示用preタグ
<img src="image.jpg" id="img">
<pre id="exifData"></pre>
Exifデータを取得
function getExif() {
var img = document.getElementById("img");
EXIF.getData(img, function() {
var make = EXIF.getTag(this, "Make");
var model = EXIF.getTag(this, "Model");
var exifData = document.getElementById("exifData");
exifData.innerHTML = `${make} ${model}`;
});
}
EXIF.getData関数の第一引数にExifデータを取得したい画像が設定されたimgタグを渡し、第二引数の関数内でEXIF.getTag関数を用いてExifデータを取得します。
ここでは公式のサンプル同様に、Make(画像入力機器のメーカ名)と、Model(画像入力機器のモデル名)を取得し、用意しておいたpreタグに表示しています。
すべてのExifデータを取得したい場合は以下の関数で取得できます。
EXIF.getAllTags(this);