Instagram(インスタ)でグリッド投稿(1つの画像を分割して投稿)用に写真分割をしますが、これをiPhoneの標準アプリである「ショートカットアプリ」を利用し無料で実現します。なお、自動分割。
目次
セキュリティ的にも安心
Instagram(インスタ)用にグリッド投稿、つまり1つの写真を正方形に分割して連続投稿することにより写真を大きく見せるテクニックがあります。
私のインスタアカウントでもこのように3分割で投稿したりしています。
これをするには写真を”重複”することなく綺麗に分割する必要があり、それをする色々なアプリも出回っています。
そしてそれをするにはそのアプリにカメラロールの参照を許可しなければなりません。
それが信頼できる会社が運営するものであれば安心ですが、よく知らない会社だとどうでしょうか。セキュリティは不安にならないでしょうか。
そして不安だからと言っていちいちPC等で加工するのはそれはそれで面倒です。
そんな訳で今回は、Appleが提供し、標準でインストールされている「ショートカットアプリ」を利用し、写真を分割する方法をご提案します。
設定はちょっと面倒ですが、無料かつ自動で行えるのが良いところ。
全体の構想
ショートカットアプリとは簡単に言えば昨今流行りのRPAみたいなもの。簡単なプログラムブロックを組み合わせて便利機能を作るようなものです。
ショートカットアプリの中には事前に準備されているものもあり、結構便利に使えたりします。
ただPCほどのスペックのないiPhoneにおいて、あまり複雑なものを組んでしまうと処理が落ちてしまう様子。
よってこれから作成する写真分割ショートカットは1つのショートカットで全てを実現するわけではなく、細かく小さな機能(「子ショートカット」と以後呼びます)をたくさん作ってそれを管理する機能で取りまとめようと考えています。
実装する機能
下記の機能を実装します。
分割は2,3,6,9
画像の向き・サイズに応じて分割
横画像はY軸中心点、縦画像はX軸中心点で切り抜き
というのが大きな考え方ですが、割と細かくなりますので説明します。
1.分割数
これについてはシンプルな考え。
1は普通に写真アプリで出来るので除外、4,5,7,8はグリッド投稿用に均等な分割にならないので除外。
よって残った2,3,6,9分割を行います。
12分割もできますが、需要はあるかな…?
分割のイメージはこんな感じ。
2.画像の向き・サイズ
これが実は面倒なところ。
向きについては簡単。横長画像なら横方向に分割、縦長画像なら縦方向に分割。
こんなイメージです。
サイズはとても面倒です。
例えば横長画像で2分割する場合を考えると下記のパターンが考えられます。
ご覧の様に横長の画像であってもその比率が変わることにより縦・横どちらの長さを基準にするのかが変わってきます。
この場合「高さ > 幅/2」を満たすと横の1/2が分割サイズになりますし、逆に「高さ < 幅/2」であれば縦がそのサイズになります。「高さ = 幅/2」についてはそのどちらか一方に入れておけばよいでしょう。
これにより条件が倍ほどに…。
3.横画像はY軸中心、縦画像はX軸中心で切り抜き
上記のイメージです。
切り抜きの位置合わせを任意の基準点で行うのは難易度高そうなので、基本的に被写体を中央にとらえていると想定して、横画像ならY軸中心点に上下対象、縦画像なX軸中心点に左右対称を基準とし分割するようにします。
条件分岐一覧
これらを踏まえて必要な条件は下記の通りです。
パープルで記載した部分の通り、機能を実装するためには14の条件で画像分割の仕組みを考えないといけません。
ショートカットの作成例
全体
小ショートカット(横向き画像で3分割)をクリックして表示
「写真分割」と名付けた条件分岐を司るショートカットと、14の条件ごとに用意した子ショートカットで構成されます。
今回例で示したのは”横方向画像を3分割”する子ショートカットです。
このような作りにしておくと、各条件ごとにできたところから子ショートカットを実装できますし、1つ1つのショートカットは(それほど)複雑になりません。一方で条件分岐ごとにショートカットができるので、計15個のショートカットができあがり管理は少々煩雑になるかもしれません。
仮に1つにまとめたとしてもIF文を細かくネスト(IFの中のIFの中のIFみたいなの)していくとアプリが落ちる可能性が高くなります。
動作結果
こちらの画像を先ほど用意した横画像を3分割する子ショートカットで処理してみます。
処理を実行するとカメラロールの赤枠部分に3分割した写真が保存できていました。
この画像の元サイズは4032 x 2268の横長画像であり、横の長さの1/3(=1344)は縦の長さを下回っています。
つまり条件としては画像の「縦サイズ ≧ 横サイズ / 3」を満たしたこのような分割が実行できていることが確認できました。
不具合対応
No | 不具合内容 | 対応 | 対応状況 |
---|
1 | 正方形画像が分割できない | 分岐条件の修正 | 2023/01/23 |
2 | パノラマ写真で”PHPhotoErrorDomainエラー3303″が発生 | 下記の通り修正 ・画像をエンコード(親) ・画像をデコード(子) | 2023/01/23 |
2023/01/23 対応
写真分割(親ショートカット)から子ショートカットへ写真をそのまま渡していましたが、一度エンコードして渡し、子ショートカットでデコードすることによりパラノラマ写真で発生していた”PHPhotoErrorDomainエラー3303”に対応しました。
変更前
小ショートカット(横向き画像で3分割)をクリックして表示
まとめ
ショートカットアプリを作成するのには時間がかかりますが、ある程度自由度の高い写真分割機能を実装できることが証明できました。
そして標準アプリのみで実現し、Appleのみへのアクセス権限許可で気になる個人情報もある程度安心です。
もしインスタのグリッド投稿用に写真分割をしたいけど、アプリをインストールするのには抵抗があるという方はご参考に。
コメント