前回は、家族の写真管理をするにあたって必要な写真管理アプリの要件を列挙し、結果として Piwigo を選択・インストールするところまでをまとめました。
詳しくは以下をごらんください。
ただそのままだとまだいろいろ使いづらいので、カスタマイズが必要となってきます。
このカスタマイズが結構大変なので、今回は自分が行っている(行った) Piwigo のカスタマイズ項目について説明していきたいと思います。
なお環境は以下の通りです。
- Ubuntu 18.04
- Piwigo: 11.5.0(linuxserver/piwigo:version-11.5.0)
カスタマイズ項目一覧
以下のようなカスタマイズを行っていきます。
- 地図上で写真を閲覧できるようにする
- アルバムごとにまとめて写真をダウンロードできるようにする
- GeoTag 情報をファイルへ書き込む
- Exif 情報を追加で表示できるようにする
- 動画に対応する
- 写真読み込み時にカメラ機種のタグをつける
- バッチマネージャーの「定義済みフィルター」を増やす
- ページフッタから「ウェブマスタに連絡する」を削除する
今回は「Exif 情報を追加で表示できるようにする」までです。
地図上で写真を閲覧できるようにする
これは前回も紹介しましたが、こういうやつです。
これは OpenStreetMap プラグインをインストールすれば使えます。特に設定に難しいところもありません。
このプラグインをインストールすると、個々の写真のプロパティページやバッチマネージャーで GeoTag を付与することもできるようになります。
上のように地図上でタップすることで GeoTag を付与できます。
これで機能的には不足はないのですが、ただ、正直そこまで使いやすくはありません。
もし Imaging Edge Mobile のようにデジカメの写真をいったんスマホに取り込むような運用をされているような方であれば、スマホ上で PhotoMap などのアプリで GeoTag 付与してからアップロードされることをオススメします。
その上でこちらの機能は、スマホ上で GeoTag 設定し忘れた時のバックアップ的位置づけの方が良いかなと思います。
なお、地図関連の機能としては GoogleMap を使う RV Maps & Earth プラグインもあります。
こんな感じで見えます。
見慣れた GoogleMap ですし、航空写真が使えるなど、閲覧だけなら RV Maps & Earth プラグインの方が良い部分もありますが、GeoTag 設定機能がショボいこともあり、トータルでは OpenStreetMap の方が良いかな。
API キーの取得については以下をどうぞ。
アルバムごとにまとめて写真をダウンロードできるようにする
やりたいこととしては文字通りで、アルバム内の写真を zip でまとめてダウンロードします。
なんでこれをやりたいかというと、今後 Piwigo を卒業して別の写真管理に移行する必要が出てきたときに、アルバムごとに写真をダウンロードできるようにしておくと移行がラク(そう)だからです。
一時的にフォルダ管理するとしても、アルバムをフォルダとして利用すれば、しばらくはそれでやり過ごせそうです。
方法としては、Batch Downloader プラグインをインストールするだけです。
これでダウンロードアイコンが追加されます(以下参照)。
ただこれは、動画には対応していないようです。
もうちょっと調べる必要がありますね・・・
GeoTag 情報をファイルへ書き込む
上で説明した通り、Piwigo では OpenStreetMap プラグインなどを使用することで、GeoTag (GPS の location 情報)の付与や閲覧ができます。
しかし、ここで付与した GeoTag はファイルの Exif には保存されません。
全てデータベース(MariaDB)の値として保存されます。
これはこれで便利な側面もあるのですが(ファイルだけをダウンロードして誰かに渡しても、場所情報が漏洩しないとか)、今後 Piwigo 以外で写真管理をしないといけないとなった場合に大変に不便です。
移行先の写真管理ソフト上でまた改めて GeoTag 情報をつけなおさないといけません。
この記事を書いている時点では、Piwigo 上でファイルに GeoTag を直接つける機能はなさそうです。
ただ、Latitude と Longitude の値がデータベース内に生で入っているので、これを CSV として取り出して exiftool で書き込むことで対応できます。
$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8298
Server version: 10.6.4-MariaDB-1:10.6.4+maria~focal mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
名前から推察するに、piwigo_images にありそうな雰囲気。
MariaDB [(none)]> use piwigo;
MariaDB [piwigo]> describe piwigo_images;
+----------------------+-----------------------+------+-----+---------------------+-------------------------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+-----------------------+------+-----+---------------------+-------------------------------+
| id | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |
| file | varchar(255) | NO | | | |
| date_available | datetime | NO | MUL | 1970-01-01 00:00:00 | |
| date_creation | datetime | YES | MUL | NULL | |
| name | varchar(255) | YES | | NULL | |
| comment | text | YES | | NULL | |
| author | varchar(255) | YES | | NULL | |
| hit | int(10) unsigned | NO | MUL | 0 | |
| filesize | mediumint(9) unsigned | YES | | NULL | |
| width | smallint(9) unsigned | YES | | NULL | |
| height | smallint(9) unsigned | YES | | NULL | |
| coi | char(4) | YES | | NULL | |
| representative_ext | varchar(4) | YES | | NULL | |
| date_metadata_update | date | YES | | NULL | |
| rating_score | float(5,2) unsigned | YES | MUL | NULL | |
| path | varchar(255) | NO | MUL | | |
| storage_category_id | smallint(5) unsigned | YES | MUL | NULL | |
| level | tinyint(3) unsigned | NO | | 0 | |
| md5sum | char(32) | YES | | NULL | |
| added_by | mediumint(8) unsigned | NO | | 0 | |
| rotation | tinyint(3) unsigned | YES | | NULL | |
| latitude | double(8,6) | YES | MUL | NULL | |
| longitude | double(9,6) | YES | | NULL | |
| lastmodified | timestamp | NO | MUL | current_timestamp() | on update current_timestamp() |
+----------------------+-----------------------+------+-----+---------------------+-------------------------------+
24 rows in set (0.003 sec)
latitude と longitude がありますね。
これを、実ファイルパス (path
) と一緒に出力してやります。
MariaDB [piwigo]> select latitude,longitude,path from piwigo_images where latitude!='NULL' into outfile '/tmp/gps.csv';
そうすると、こんなファイルができあがります。
XX.XXXXXX XXX.XXXXXX ./upload/2021/08/18/20210818003731-2c74be19.jpg
XX.XXXXXX XXX.XXXXXX ./upload/2021/08/18/20210818003731-2da41e01.jpg
XX.XXXXXX XXX.XXXXXX ./upload/2021/08/18/20210818003733-807ba8b1.jpg
:
:
この csv を使ってカッコよく設定したかったんですがやり方がわからなかったので・・・、ちょっとダサいですがこんな感じでスクリプト化して実行すればよいかと思います。
$ awk '{print "exiftool -GPSLatitude="$1 " -GPSLongitude="$2 " " $3}' /tmp/gps.csv
exiftool -GPSLatitude=XX.XXXXXX -GPSLongitude=XXX.XXXXXX ./upload/2021/08/18/20210818003731-2c74be19.jpg
exiftool -GPSLatitude=XX.XXXXXX -GPSLongitude=XXX.XXXXXX ./upload/2021/08/18/20210818003731-2da41e01.jpg
exiftool -GPSLatitude=XX.XXXXXX -GPSLongitude=XXX.XXXXXX ./upload/2021/08/18/20210818003733-807ba8b1.jpg
このへんのやり方さえ知っておけば、いざ Piwigo から移行するとなったときにまとめて GeoTag 情報をファイルへ書き込めば良さそうですね。
Exif 情報を追加で表示できるようにする
標準でも Exif 情報は表示できますが、表示されるのは以下の4つだけです。
- メーカー名
- デジカメ機種名
- 撮影日
- F 値
/gallery/local/config/config.inc.php
の show_exif_fields
に項目を追加することで、表示項目を増やすことができます。
ひとまず今はこんな感じで設定しています。
$conf['show_exif_fields'] = array(
'Make',
'Model',
'Software',
'DateTimeOriginal',
'COMPUTED;ApertureFNumber',
'ExposureTime',
'ISOSpeedRatings',
'FocalLength',
'FocalLengthIn35mmFilm',
'format',
'type',
'duration',
'playtime_seconds',
'resolution',
'frame_rate',
'sampling_rate',
'formatprofile',
'codecid',
'display_aspect_ratio'
);
空行を挟んで前半が静止画向け、後半が動画向けです。
そもそもどんなパラメータを show_exif_fields
に設定できるのかというのがイマイチよくわからないのですが、videojs プラグインのページにそれなりに載っているので、そちらを参考にしました。
このように設定することで、以下のように表示されるようになります(これは動画の例)。
思ったより長くなってしまったのでもう1回続きます。
コメント