電源回路がほんと難しい。スイッチング電源を設計通りに動作できたことがないので大変に苦手意識がついている。

ちょっと LED ドライバ用に昇圧させようというだけなのだが、どこかの設計ミス〜実装ミスで十分な性能が出ていない。しかしどこのミスなのかわからない。うーん。

電源は避けて通れないんだけどなあ。

写真の右下に exif 情報を出すようにしてみた。どう表示させるのがいいのか悩んだけど、とりあえず常時表示してみることに。ほんとは最初の時点では表示させたくないんだけど、hover で出るってのもなんかなあという感じだった。

Google Photos の画像の exif を得る

Google Photos の画像から exif 情報を得るのは簡単ではない。表示しているサムネイルのURLから exif 情報をとれるのが一番簡単なのだが、これはたぶんできない。URL にオリジナル画像や、後述するAPIリクエストに必要な情報が含まれているように見えない。

幸いこの日記では picasa へのリンク ( https://picasaweb.google.com/[userid/[albumid]#[photoid] みたいな形式 ) は保存してあったので、これを利用することにした。

exif を取得したい場合大きくわけると2つの方法がある

  • オリジナル画像をダウンロードして自力で exif を解析する
  • API 経由で取得する

が、オリジナル画像の URL を取得するためには API リクエストをしないといけないので、とにかく API リクエストを行う必要がある。オリジナル画像の URL を取得するレスポンスには exif のメタデータも含むため、これで足りるならわざわざオリジナル画像をダウンロードする必要はない

Invalid な albumid を回避する

Picasa API という既にメンテされていないAPIを使わなければならないのだが、userid albumid photoid 全てがわかっていないと画像のメタデータを取得することができない。

保存されている picasa へのリンクに全てあるのだが、albumid に invalid なものが含まれることがある。これは Google Picker API 経由で取得したものなので、 Picker API がなんか不思議な URL を返すようだ。意味がわからないんだけどなぜかそうなっている。

これじゃあ無理かと思いつつ試していたところ、albumid は valid で存在してさえいれば、photoid の親でなくとも良いということがわかった。画像が含まれるアルバムのIDというのを知る必要はないのだ。

ということで、userid は簡単に調べられるし、albumid には適当に存在する albumid を指定しておけばよいということなので、実質的には photoid だけでメタデータを取得できた。

  1. トップ
  2. tech
  3. Google Photos の画像の exif を API 経由で得て表示