iOS用のアプリアイコンがありますが、Appleは画像にアルファを含めることを許可していません。このアルファチャネルを削除する方法?私が持っているのはpng画像だけで、ソースファイルはありません。友人が画像を処理してくれたからです。
iOS用のアプリアイコンがありますが、Appleは画像にアルファを含めることを許可していません。このアルファチャネルを削除する方法?私が持っているのはpng画像だけで、ソースファイルはありません。友人が画像を処理してくれたからです。
回答:
別の画像エディターがない場合は、Macのプレビューで開き、[エクスポート]オプションを使用して別の形式で再保存します。アルファチャネルを確実に削除するには、エクスポートすることをお勧めしますJPG(最高品質)に変換してから開き、再度PNGとしてエクスポートします。
とは言っても、実際の透明度がなければ、透明度チャネルのあるアイコンを送信しても問題ないでしょう。
JPGにエクスポートしてからPNGに戻すという承認された回答はお勧めしません。
これは、余分なエクスポートや(非可逆)JPGへの保存をせずにこれを行うための超高速で簡単な方法です。
プレビューアプリの使用(Mac):
hasAlpha: yes
ます。さらに、iTunes Storeは不要なアルファチャネルについて不平を言っています(「操作に失敗しました– App Storeアイコン…を透明にしたり、アルファチャネルを含めることはできません」)。
convert in.png -alpha off out.png
。再 プレビュー:エクスポートダイアログで「アルファ」のオン/オフを切り替えると、予測されるファイルサイズが変更されますが、保存すると、常にアルファ情報(および対応するサイズ)でファイルが書き込まれます。
アイコン付きのディレクトリからすべてのアルファチャネルを削除する必要がある場合は、次のコマンドを使用します。
for i in `ls *.png`; do convert $i -background black -alpha remove -alpha off $i; done
Mac OS Mojaveを使用していて、「変換コマンドが見つからない」場合
brew install imagemagick
Homebrewをインストールするには
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
-alpha remove -alpha off $i;
する-alpha remove -alpha off png24:$i;
と、24ビットpngが出力されます
プレビューアプリを使用している場合は、エクスポートしてからjpgとpngの間で再エクスポートする必要はありません。エクスポートを選択すると、ファイルタイプ(PNG)の下にアルファチェックボックスが表示され、設定を解除して保存します。
imagemagickを試すことができます(さまざまなサイズに簡単にサイズ変更できます)。
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
アプリをiTunesアプリストアにアップロードしようとすると、次のエラーが表示されます。
iTunesストアの操作に失敗しました
エラーITMS-90717:「無効なApp Storeアイコン。'MyApp.app 'のアセットカタログのApp Storeアイコンは、透明にすることも、アルファチャネルを含めることもできません。」
私のApp Storeアイコンには、Finderでアセットを見つけてその情報を検索することにより、アルファチャネルが含まれていることを確認しました(⌘+ i)。詳細の下に、それは示しました:
アルファチャネル:はい
アルファチェックボックスをオフにしてエクスポートすることでプレビューを使用してアルファチャネルを削除する上記の解決策を見つけましたが、18のアセットからアルファチャネルを削除する必要があるため、バッチエクスポートする方法を見つけました。
バッチエクスポートが機能するようにするには、ファインダーですべてのアプリアイコンアセットを選択し、右クリックして開く(またはプレビュー付きで開く)ようにしました
すべてのアセットが同じウィンドウに表示されます。すべて選択(⌘+ a)して、[ファイル]> [選択した画像をエクスポート]>> [オプションを展開]> [アルファ]チェックボックスをオフ> [選択](宛先フォルダ)を選択します。
できた!これで、すべての画像がアルファチャネルを取り除いてエクスポートされました。
PNGからアルファチャネルを削除するには:
Macの場合:画像をエクスポートまたは保存すると、プレビューバージョン9.0(macOS Sierra)でアルファチャネルを削除できます。
プレビューバージョン10.0(944.2)(macOS High Sierra)では、アルファチャネルは削除されません。エクスポートまたは保存、あるいはその両方は、画像からアルファチャネルを削除しません。
Flutterアプリケーションのコンテキストで同じ問題が発生したため、画像のアルファチャネルを削除できる簡単なWebサイトをこのタスク専用に用意しました。
基本的に私はブラウザで直接Webアセンブリを使用してImageMagickを実行するので、画像はアップロードされず、Gimpのような他のツールは必要ありません。
アルファチェックボックスはプレビューに表示されなくなりました
Nikita Pushkarの非常に優れたソリューションを、次の場所にあるすべてのiOSアイコンを変換するシェルスクリプトに入れましたres/icon/ios
。
利用できない場合はbrewを使用してimagemagickをインストールするため、Macでのみ実行されると思います。
#! /usr/bin/env bash
#
# remove alpha channel from PNG images when App Store upload fails
#
# taken from https://stackoverflow.com/a/52962485 - @Nikita Pushkar
#
# make sure to have brew installed, see https://brew.sh:
# /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
#
# make sure to have imagemagick installed, see https://imagemagick.org:
# brew install imagemagick
#
if command -v convert; then
echo "imagemagick seems to be installed"
else
echo "imagemagick not installed, trying to install ..."
if command -v brew; then
echo "brew is installed, using it"
else
echo "brew not installed, trying to install ..."
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
fi
brew install imagemagick
fi
for i in `ls res/icon/ios/*.png`;
do
echo "convert $i"
convert $i -background white -alpha remove -alpha off $i;
done