「レンズの焦点距離」の相違をチェックする
「PHOTOHITO」サイトの投稿写真の中に、画像と撮影情報が間違って登録されている場合について、前ページ で纏めました。
レンズ性能を「検証」する作業では、この間違いは大変に困った問題です。「検証」する側は、場合によっては完全に騙されてしまいます。「PHOTOHITO」も登録画面でもう少し丁寧に注意喚起すれば良いのですが...
で、最低限の予防対策として、「Exifデータ」のレンズ焦点距離をチェックするツールを作りました。 不完全なチェックで、単焦点レンズの検証でしか使えませんが、少しでも「誤設定」を排除できれば良いので。
「PhotoHito Checker」
「ユーザー別写真リスト」の「Exifデータ」からレンズの「焦点距離」を調べ、このツールに設定した数値と照合します。 値に相違があれば、ページ上部に「Exifデータ」の値を表示して知らせる、とても単純なツールです。
照合の機能は単純で万能ではなく、起動時に「Cookie」を読む事、一般的な機能ではないという事から、「PhotoHito Viewer」とは独立したツールにしました。
レンズ焦点距離の設定
「PhotoHito Checker」を「ON」にして「ユーザー別写真リスト」を開くと、上部のヘッダー部に、判定基準の「焦点距離」を設定する「入力枠」が表示されます。
● マウスを乗せるとスピナーが表示されるので、判定基準の焦点距離を設定します。
▪ 設定値は「Cookie」に記録され、24時間有効です。
▪「ユーザー別写真リスト」を開く度に「Exifデータ」の「焦点距離」とこの値を比較します。
▪「PhotoHito Viewer」がなくても、このツール単独で機能します。
レンズ種の間違い設定を判定
● 単焦点レンズの場合のみ、レンズ種の間違いを判定できます。
▪ ズームレンズで偶然に指定の焦点距離で撮影した写真は、判定できません。
▪ 指定の焦点距離があてはまる別種の単焦点レンズは、判定できません。
特定の単焦点レンズを使った写真を抽出した「サムネイルリスト」から「ユーザー別写真リスト」を開くと、「Exif」は特定レンズの「焦点距離」を表示するはずです。 しかし、「撮影情報」の設定を間違った写真は違う値を示します。
下は、「PhotoHito Checker」を「ON」にした時の「ユーザー別写真リスト」の上部の表示で、指定値は「30mm」です。
開いた写真の「Exifデータ」の焦点距離が「30mm」なら、上の様に設定枠しか表示されません。
指定が「25mm」の場合に同じ写真を開くと、「Exifデータ」の「焦点距離」と指定値が異なり、下の様に赤表示で「Exifデータ」を表示して申告します。
▪ このツールは相違を報告するだけのツールです。 赤枠の報告を無視しても何も問題はありません。
▪「撮影情報」の「一括入力」で、何度も誤設定するユーザーは限定されるので、そのユーザー名の写真には注意しておく必要があります。
「PhotoHito Checker」を利用するには
このツールは Chrome / Edge / Firefox版の拡張機能「Tampermonkey」上で動作します。 以下に、このツールの導入手順を簡単に説明します。
❶「Tampermonkey」を導入します
◎ 使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。
既に「Tampermonkey」を導入している場合は、この手順 ❶ は不要です。
拡張機能の導入については、以下のページに簡単な説明があるので参照ください。
❷「Tampermonkey」にスクリプトを登録します
◎「Tampermonkey」の「+」マークの「新規スクリプト」タブを開きます。
◎「新規スクリプト」には、最初からテンプレートが記入されています。 これは全て削除して、完全に空白の編集枠に 下のコードをコピー&ペーストします。
〔コピー方法〕 軽量シンプルなツール「PreBox Button 」を使うと
コード枠内を「Ctrl+左Click」➔「Copy code 」を「左Click」
の操作で、掲載コードのコピーが可能になります。
◎ 最後に「ファイル」メニューの「保存」を押すと、ツールが使用可能になります。
〔 PhotoHito Checker 〕 ver. 0.1
// ==UserScript== // @name PhotoHito Checker // @namespace http://tampermonkey.net/ // @version 0.1 // @description 写真投稿サイトPHOTOHITOのレンズ種チェック // @author PHOTOHITO User // @match https://photohito.com/photo/* // @exclude https://photohito.com/photo/edit/* // @icon https://www.google.com/s2/favicons?sz=64&domain=photohito.com // @grant none // ==/UserScript== let path=location.pathname; if(path.match(/\/photo\/\d{1,8}\/$/)){ //「ユーザー別写真リスト」の画面 let focal_l; // EXIFの焦点距離 alert_env(); let check_set=document.querySelector('#check_set'); if(get_cookie('PHC')!=0){ check_set.value=get_cookie('PHC'); } // Cookieの読込み 🔵 let exif=document.querySelector('#exif_area table'); if(exif){ let trs=exif.querySelectorAll('tr'); let k; for(k=0; k<trs.length; k++){ if(trs[k].textContent.includes('焦点距離')){ focal_l=trs[k].querySelector('td').textContent.match(/\d+/); break; }} let alert_box=document.querySelector('#alert_box'); if(alert_box){ if(focal_l==check_set.value){ alert_box.style.opacity='0'; } else{ alert_box.style.opacity='1'; alert_box.textContent=trs[k].querySelector('td').textContent; }}} check_set.addEventListener('input', function(){ document.cookie='PHC='+ check_set.value +'; path=/; Max-Age=86400'; }); // 24h 🔵 function alert_env(){ let abox= '<div id="abox">'+ '<input id="check_set" type="number" min="0" value="0">'+ '<span class="mm">mm</span>'+ '<span id="alert_box"></span>'+ '</div>'+ '<style>'+ '#abox { position: absolute; top: 5px; right: 250px; z-index: 2; '+ 'font: bold 16px Meiryo; } '+ '#check_set { position: relative; width: 54px; padding: 2px 6px 0; margin: 0 15px; '+ 'font: inherit; -moz-appearance: textfield; } '+ '#check_set::-webkit-inner-spin-button { margin-top: -1px; } '+ '#check_set:hover { -moz-appearance: unset; } '+ '.mm { position: absolute; left: 48px; top: 6px; font-size: 14px; } '+ '#abox:hover .mm { z-index: -1; } '+ '#abox:focus-within .mm { z-index: -1; } '+ '#alert_box { display: inline-block; vertical-align: middle; '+ 'padding: 3px 12px 2px; color: #fff; background: red; }'+ '</style>'; if(!document.querySelector('#abox')){ let login_menu=document.querySelector('#login_menu'); if(login_menu){ login_menu.insertAdjacentHTML('beforebegin', abox); }}} function get_cookie(name){ let cookie_req=document.cookie.split('; ').find(row=>row.startsWith(name)); if(cookie_req){ if(cookie_req.split('=')[1]==null){ return 0; } else{ return cookie_req.split('=')[1]; }} if(!cookie_req){ return 0; }} } //「ユーザー別写真リスト」の画面
「PhotoHito Checker」最新版について
旧いバージョンの JavaScriptツールは、アメーバのページ構成の変更で動作しない場合があり、導入する場合は最新バージョンをお勧めします。
●「PhotoHito Checker」の最新バージョンへのリンクは、以下のページのリンクリストから探せます。