web-dev-qa-db-ja.com

画像のアルファチャンネルを削除する

IOS用のアプリアイコンがありますが、Appleでは画像にアルファを含めることができません。このアルファチャネルを削除する方法は?友人が私のために画像を作成したため、私はPNG画像しか持っていません。ソースファイルは持っていません。

68
zbz.lvlv

別の画像エディターがない場合、Macのプレビューで開くことができ、エクスポートオプションを使用して別の形式で再保存できます-アルファチャンネルを削除するには、エクスポートするのが最適ですJPG(最高品質)に変換してから開き、再度PNGとしてエクスポートします。

そうは言っても、実際の透明度がなければ、透明度チャンネル付きのアイコンを送信しても大丈夫だと思います。

41
danielquokka

JPGにエクスポートしてからPNGに戻すという受け入れられた回答はお勧めしません。

  • プロセスの追加ステップ(2エクスポート)
  • JPGは損失があるため、一部の画像データが失われます

追加のエクスポートや(損失のある)JPGへの保存を行わずに、これを行う非常に高速で簡単な方法を次に示します。

プレビューアプリの使用(Mac):

  1. Open画像
  2. Command-Shift-Sto Duplicate(コピーを作成)
  3. 保存するコマンド-S
  4. 「アルファ」チェックボックスの選択を解除します
  5. ファイル名から「コピー」を削除(スペースを含む)
    • これはオリジナルを上書きします。オリジナルを保持する場合は、名前に「コピー」を残します
  6. 保存
  7. 「置換」をクリックして、オリジナルを上書きすることを確認します
    • オリジナルを上書きする場合にのみ必要 remove alpha channel
174
Mycah

プレビューアプリを使用している場合、jpgとpngの間でエクスポートしてから再エクスポートする必要はありません。エクスポートを選択すると、ファイルタイプ(PNG)の下にアルファチェックボックスが表示され、設定を解除して保存します。

34
ospfranco

アイコンがあるディレクトリからすべてのアルファチャネルを削除する必要がある場合は、次のコマンドを使用します。

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
18
Nikita Pushkar

最初に画像をjpgにエクスポートする必要はありません。アルファチャネルのチェックボックスをオフにして、プレビューアプリでアルファチャネルなしのpngからpngに直接エクスポートできます。

enter image description here

13
Stefan

Imagemagickを試すことができます(異なるサイズに簡単にサイズを変更することもできます):

convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
11
Psychomentality

ITunesアプリストアにアプリをアップロードしようとすると、次のエラーが発生しました。

iTunes Storeの操作に失敗しました

エラーITMS-90717:「App Storeのアイコンが無効です。「MyApp.app」のアセットカタログ内のApp Storeのアイコンは、透明にしたり、アルファチャネルを含めることはできません。」

Finderでアセットを見つけ、その情報を検索することで、アプリストアアイコンにアルファチャネルが含まれていることを確認しました(⌘+ i)。詳細情報の下に、以下が示されました。

アルファチャネル:はい

上記のソリューションを見つけて、プレビューを使用してアルファチェックボックスをオフにしてエクスポートすることでアルファチャンネルを削除しましたが、アルファチャンネルを取り除く必要がある18のアセットがあったので、それらをバッチエクスポートする方法を考えました。

バッチエクスポートを機能させる方法は、Finderですべてのアプリアイコンアセットを選択し、右クリック>開く(またはプレビューで開く)ことでした。

これで、すべてのアセットが同じウィンドウに表示されます。すべて選択(⌘+ a)し、[ファイル]> [選択した画像をエクスポート…]> [オプションを展開]を選択し、[アルファ]チェックボックスをオフにし、[選択先フォルダー]

できた!これで、すべての画像がアルファチャンネルを取り除いてエクスポートされます。

7
Toland Hon

PNGからアルファチャネルを削除するには:

macの場合:イメージをエクスポートまたは保存すると、プレビューバージョン9.0(macOS Sierra)でアルファチャネルを削除できます。

プレビューバージョン10.0(944.2)(macOS High Sierra)は、アルファチャネルを削除しません。エクスポートまたは保存、あるいはその両方は、画像からアルファチャネルを削除しません。

5
Hynek

まあ、あなたはMacを使っているので、次回はおそらくAutomatorを使いたいだけでしょう。画像をBMP(ロスレス)に変換し、PNGに戻します。保存して出来上がりましょう...

2
Anticro

アルファチェックボックスはプレビューに表示されなくなりました

1
vboombatz

Nikita Pushkarの非常に素晴らしいソリューションを、res/icon/iosにあるすべてのiOSアイコンを変換するシェルスクリプトに入れました。

Imagemagickがインストールされていない場合、brewを使用してインストールするため、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
0
Pedi T.