iOSアプリのアイコンをffmpegコマンドを使ってアルファチャンネルなしで各サイズを吐き出す
はじめに
iosアプリのアイコンでは異なるサイズの画像をたくさん作る必要があります。
でこれがめちゃくちゃめんどくさいので、そのためのツールが色々あるのでまずはこれらを試してみることをお勧めします。
一番簡単にWebアプリ上できるのがこちらで
appicon
Macのアプリでできるのがこちらです
Image2icon
遭遇した問題 〜 アルファチャンネルが追加されてしまう 〜
今回自分はillustratorでアイコンを描き画像としてでexportしました。
そして上記のツールでアイコンを作成して、App Store Connectにアップロードしようとすると、以下のようなエラーが出ました。
Error ITMS-90717: "Invalid App Store Icon. The App Store Icon in the asset catalog in 'YourApp.app' can't be transparent nor contain an alpha channel."
アルファチャンネルが含まれているから使えないよーとのことですね。
なるほど書き出したアイコンにアルファチャンネルが含まれているのねーということで確認してみると、含まれていません。
色々試してみたのですが、どのツールを使っても書き出し後の画像にはアルファチャンネルが含まれてしまいました。
解決法 〜 ffmpegでリサイズする 〜
事前に1024px x 1024pxの画像についてMacのプレビューアプリなど使ってアルファチャンネルを除去します。
ファイル > 書き出す でアルファチャンネルのチェックを外して保存します。
用意した画像にffmpegを使ったshell scriptを使い、異なるサイズの画像を一気に作成します。
# Export ios app icons by ffmpeg scale command
# usage: sh export_ios_icons.sh {path_to_your_img}
# example: sh export_ios_icons.sh ./app_icon.png
# sizes of images
# you can get other size images by editing thisarray
size=(20 40 60 29 58 87 80 120 180 76 152 167 1024)
for i in "${size[@]}"
do
:
ffmpeg -i $1 -vf scale=$i:$i output_$ix$i.png
done
作りたい画像サイズを配列で保持しておいて、
ここでリサイズした画像を生成します。
ffmpeg -i $1 -vf scale=$i:$i output_$ix$i.png
# ex) ffmpeg -i $1 -vf scale=1024:1024 output_1024x1024.png
実行時はこんな風にします。
sh multi_size_image_export.sh icon.png
実行すると以下のように各画像サイズのアイコンが出力され、アルファチャンネルがない状態も見事キープされていますね!
めでたしめでたし
(あとで気づいたがそもそもjpgでやれば、こんな問題全く起きなかったかも...)
Author And Source
この問題について(iOSアプリのアイコンをffmpegコマンドを使ってアルファチャンネルなしで各サイズを吐き出す), 我々は、より多くの情報をここで見つけました https://qiita.com/kazuooooo/items/6ed4d6818ef9cef0bb85著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .