画像を圧縮する iOS / iPadOS 用ショートカットを作った

iOS / iPadOS 用の公式 App であるショートカットを利用して、画像を圧縮するショートカットを作ってみました。

何をするの?

内容としてはごく単純なものですが、

・Discord 向けに選択した画像が8MBを超えていたら圧縮する

といったものです。

予め本体内のカメラロールにあるものを圧縮するもの(①とします)、共有メニューから圧縮するもの(②)の2通りを作ってみました。


①の仕様

・画像をカメラロールから選択する

・選択した画像が8MB以下なら終了する

・8MBより大きい場合、まずpngに圧縮する(元がpngでも再度pngに圧縮するとサイズが小さくなる)
 ここで8MB以下になった場合、圧縮したもので画像を置き換える
 挙動としては、元の画像を削除後に、圧縮したもので保存します。
 名前は"元のファイル名"+"-2".png になります。
 例:IMG_0001.png → IMG_0001-2.png

・一度pngに圧縮しても8MBを超えていた場合、JPGで圧縮をする
 この場合元の画像から劣化しているので、置き換えずにそのまま保存します(カメラロールに元の画像を圧縮後の画像2枚が出てくる)

JPGの圧縮率は最高(高画質)に設定してあります。これは、iPhone X 以降のより ppi の高いディスプレイを搭載した端末のスクリーンショット等を圧縮することを想定して作成しているのでこれでも問題ないのですが、それ以外の巨大なファイルでは一度圧縮しただけでは8MBを超えていることがあります。その場合は圧縮率の変更を行ってください。


②の仕様

Google フォト等の外部アプリから保存せずに直接共有したいが容量オーバーだったので一度圧縮してから再度共有をかけたい場合に使用できます。
個人的に画像を一度保存する行為がアレルギーなので、共有やコピペなどで保存しない手段のために①を改変して作成しました。
挙動はほぼ①と同じですが、

・共有から画像を入力する。

・入力された画像が8MB以下なら終了する

・8MBより大きい場合、まずpngに圧縮する
 8MB以下になった場合、圧縮後の画像で共有をかける

・一度pngに圧縮しても8MBを超えていた場合、JPGで圧縮をする
 圧縮後の画像で共有をかける

となっています。


所感

初めてショートカットを作ったので、ショートカット特有の書き方に慣れるのが大変でした。数を比較するのが計算機 App の項目しかできなかったりと、当たり前なのかもしれませんがよくわからないというのが正直なところです。
本当はあまりにもサイズが大きすぎたら1000万画素程度に圧縮とか8MBになるように繰り返し圧縮かけたりとか色々考えたりはしたのですが、forの使い方がわからなかったので諦めました。(繰り返すとリストで帰ってくるって何?)
もともとスクショが巨大すぎて共有できないといったところから作ろうと思ったので、まあその用途なら今の所問題なく動いているので大丈夫なのかなあ、と。

でも Discord Nitro 入ったらこれいらないよね。


免責事項

当ショートカットを使用したことで発生したいかなる損害、不利益に対して製作者は一切責任を負わないものとします。
すべて自己責任で使用してください。データが全部消えても責任取りません。
改変などは自由です。


ダウンロード

ダウンロードした時点で上記の免責事項に同意したものとみなします。



コメント

このブログの人気の投稿

ダイソーで買える300円LEDペンライト

EACでFLACで取り込むときにGracenoteから情報を取得しタグ付けする方法