はじめに
出先などでiPhoneで撮影した大量の画像を、まとめてメールで送ったり、まとめてSlackで共有したりしたいときに、画像を縮小してJPGにした上で、iOSの「共有」メニューから共有できるようにする「ショートカット」(「ショートカット」アプリで使うもの)です。
課題
最近のiPhoneはカメラの解像度が高いため、写真のファイルサイズが大きく、大量の画像をまとめてネットワーク越しに送信(共有)するときに、ギガを食ってしまうし、時間がかかるし、結果バッテリも消費する(それほどでもない?)という三重苦に見舞われます。
もちろん、オリジナルの状態で共有しなければならない場合は我慢するしかないですが、出先から速報的に情報共有する目的であれば、ある程度解像度を落とした画像でも十分なことも多いです。
また、最近のiPhoneでは、デフォルト設定ではHEIC形式で保存されるため、そのままSlackに共有すると適切に表示されない経験などをしました。
提案手法
このような課題に対し、iOSの様々な処理を組み合わせて(少し)複雑な処理を可能にするアプリ「Shortcuts」(日本名「ショートカット」)を使って、複数の画像を選択し、全ての画像を縮小した上で、JPGに変換して、iOSの「共有」メニューから任意のアプリで扱えるようにしました。
-
- このショートカットを実行すると、まず画像をどの大きさに縮小したいのかを聞いてきます。サイズは以下の5つから選べます。
- 512
- 768
- 1024
- 1536
- 2048
- 次に、「写真」アプリの画面から、画像を選択するよう促されます。画像は複数選択可能です。
- 画像を選択すると、ショートカットがそれぞれの画像の縦横を取得し、縦が大きい画像は縮小後の縦が先に選択したサイズに、横が大きい画像は縮小後の横が先に選択したサイズに、それぞれなるように縮小します。このとき、アスペクト比は保たれます。
- 縮小した画像は、続いてJPGに変換されます。
- 最後に、iOSの「共有」メニューを呼び出します。「共有」メニューから呼び出せる任意のアプリで、縮小したJPGを共有することができます。
-
問題点
- としては、このショートカットをウィジェットから呼び出せるようにした際、画像を縮小するサイズを選択する部分が、適切に表示されません。「タップして残りを表示↑」なる表示が出るのですが、手元の環境ではタップできません。
- このショートカットを実行すると、まず画像をどの大きさに縮小したいのかを聞いてきます。サイズは以下の5つから選べます。
-
- このショートカットを実行すると、上のショートカットであった画像を縮小するサイズを聞く処理がなく、いきなり「写真」アプリの画面から、画像を選択するよう促されます。画像は複数選択可能です。
- 画像を選択すると、ショートカットがそれぞれの画像の縦横を取得し、縦が大きい画像は縮小後の縦が1024に、横が大きい画像は縮小後の横が1024に、それぞれなるように縮小します。このとき、アスペクト比は保たれます。
- 縮小した画像は、続いてJPGに変換されます。
- 最後に、iOSの「共有」メニューを呼び出します。「共有」メニューから呼び出せる任意のアプリで、縮小したJPGを共有することができます。
- 上のショートカットには前述のような問題点があったので、苦肉の策です。
結果
TBD
まとめ
以上です。