カメラの画素数は大きいに越したことはないと言えばないですが、ファイルサイズが大きくなりストレージを圧迫、いざというときに空きが足りなくてアプリをダウンロードできなかったりiOSのアップデートができなかったりと、そのままでは不便なことは多いです
以前に紹介したレシピは、複数の組み合わせを予め施行し、希望のファイルサイズにできるだけ近い形で保存するものでした.
今回は単純にある程度の倍率に抑えたり、指定のサイズにするレシピを少しだけ工夫して作ってみます.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS17.5.1
スポンサーリンク
無難な方法
シンプルに作るなら例えば画像のように組みます.
「メニュー」アクションで好きなオプションを追加し、各々でサイズを変更して保存します(メニュー項目で打ち間違いがありますが無視してください).
通常ならこれで十分ですが、項目が増えたり似た内容がある場合各々を全部書くのは面倒です.
なので少し工夫することにします.
レシピ1:類似項目をまとめて処理
まずは先程のような内容のレシピを修正します.
今回は「メニュー」でなく「リスト」アクションに倍率や長さなどをリストし、「リストから選択」でひとつ選ばせます.
後の処理のために、項目の文字にある程度のルールを決めておきます.
例えば倍率で指定する項目には"倍"の字を、縦横の指定の場合は各々の文字を必ず入れる…という具合です.
続いて選択した項目から数字だけを取り出します.
例えば「1/2倍」を選んだら1/2を取得したいわけです、なので今回は正規表現を使って不要な文字である"倍"や"縦"などを取り除いています.
「入力から数字を取得」でもいいですがそれだと"1/2"と取り出すことができません.
その場合は"0.5"などにする必要があります.
具体的な処理をしていきます.
リストから選択した項目に"倍"の字が含まれている場合は「画像のサイズを変更」で割合で変更します.
ただしここで単純に1/2なら(1/2)*100=50(%)…を入れると縦横共に適用され、結果的に(1/2)^2*100=25(%)になってしまいます.
なので一度「計算式」で上で取り出した数字に対してsqrt(取り出した数字)*100とし、これを「画像のサイズを変更」の倍率にします.
他の選択肢もあるのでこの結果を適当な変数に置きます.
続いて「縦」や「横」が入った項目を選んだ場合です.
こちらは「画像のサイズを変更」のフォーマットをデフォルトのままにし、各々の縦あるいは横を取り出した数字に指定し、他方は空の状態にします.
「万画素」が入った項目を選択した場合はその項目にある数字と実際に撮影した画像のサイズから割合を計算し、それを使って倍率でサイズを変更します.
最後にサイズ変更した結果を保存して終了です.
レシピ2:選択時に保存時のファイルサイズを確認できる仕様を追加
上のままでも十分ですが、実際に1/2倍にしたり縦幅を1000pxに選んだ場合どんなファイルサイズになるか事前に把握した上で選択したいかもしれません.
事前処理が必要ですが作ってみます.
アイデア自体は先日のImageConvと同じです.
まず前回と同様元画像となる写真を撮り、サイズを指定するリストを用意します.
ファイルサイズの情報が必要なのでレシピ内で各々の場合でリサイズした結果のファイルサイズを取得してリストしていきます.
なのでこの時点ではまだ選択処理はせず、「各項目を繰り返す」で上記リストに対して処理を繰り返します.
繰り返し項目に対して、前回同様数字だけを取り出しておきます.
繰り返し項目に"倍"が含まれている場合は倍率でリサイズし、項目名に続いてリサイズした結果のファイルサイズを並べたものをリストに追加します.
繰り返し項目に"縦","横","万画素"が含まれている場合も先程と上の処理に倣ってリストしていきます.
上で作ったリストに対して「リストから取得」でひとつ選ばせます.
せっかくなので元画像の情報をプロンプトに載せておくと参考になります.
画素数は縦横を掛け算して得られます.
選択した項目に応じてサイズを変更していきます.
ここで選んだ結果は元のリストに各々のリサイズ後のファイルサイズが追加された状態なわけですから、前回のレシピ1と同じ内容で問題なく作ることができます.
というわけで縦横の場合はここでは省略しています.
リサイズした結果はそのまま保存してもいいですがリサイズしたことがわかるよう、保存する前に「名前を変更」でこの時点での日付を名前に追加した上で保存するのもアリです.
実際に実行すると画像のようになります.
ただ単に選択肢を選ぶより参考になる情報が詰まっていますね.
〆
ちょっとしたスクラップ目的なら1000万画素も2000万画素も要らないんですよね.
後でリサイズしてもいいのですが画像が溜まっていくとどの画像をリサイズすべきか、探すのも大変です.
予め必要十分なサイズで保存しておけば空き容量を逼迫させるタイミングが少しですが先延ばしできます.