Exifを取得できる簡単なAPIがないか探していたら、IMG2JSONというちょうどいい感じのAPIがあったので、簡単なサンプルと共に紹介します。JavaScript からもJSONPを使って、呼び出せるのでブログなどでちょこっと仕掛けを入れる際も使えそう。
API仕様
パラメータ url に、EXIFを取得する画像のURLを指定すると、JSON形式でレスポンスされます。パラメータ callback を指定することで、JSONP にも対応しているので、JavaScriptからも呼び出せます。
http://img2json.appspot.com/go/?url=URL (GET)
http://img2json.appspot.com/go/?url=URL&callback=コールバック関数名 (GET)
http://img2json.appspot.com/go/?url=URL&callback=コールバック関数名 (GET)
レスポンス例
こんな感じで、JSON形式でレスポンスが返ってきます。{
"url": "http://www.exif.org/samples/fujifilm-mx1700.jpg",
"mimeType": "image/jpeg",
"width": 640,
"height": 480,
"byteSize": 100227,
"exif": {
"YResolution": "72/1",
"Tag0xa217": "2",
"ResolutionUnit": "Inch",
"Compression": "6",
"Copyright": "",
"Tag0xa300": "[ 3 ]",
"Make": "FUJIFILM",
"Flash": "no",
"DateTime": "2000:09:02 14:30:10",
"MaxApertureValue": "3.3",
"YCbCrPositioning": "2",
...
}
}
サンプル(JavaScript)
以下は、ページに表示されている写真を撮影したカメラ、F/S値を自動挿入するJavaScript(jQuery)のサンプルです。<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('.photo').each(function() {
var $this = $(this);
$.getJSON('http://img2json.appspot.com/go/?url='+encodeURI($this.attr('src'))+'&callback=?', {}, function(json) {
if (json.exif) {
$this.after($('<p>').text(
json.exif.Model
+ ' (F' + json.exif.FNumber
+ ', ' + json.exif.ShutterSpeedValue
+ ')'
));
}
})
});
});
</script>
</head>
<body>
<div>
<img class="photo" src="http://www.exif.org/samples/canon-ixus.jpg">
</div>
</body>
</html>
こんな感じで.photoクラスが設定されたimgタグのExif情報が表示されます。ブログとかでは、サムネイル化してしまうと、Exif情報が消えてしまう場合があるので、必ずしも表示されるかはわかりませんよ。
0 件のコメント:
コメントを投稿