我有一个适用于iOS的应用程序图标,但Apple不允许Alpha出现在图像中。如何删除此Alpha通道?我只有PNG图片,没有源文件,因为我的朋友为我制作了图片。
我有一个适用于iOS的应用程序图标,但Apple不允许Alpha出现在图像中。如何删除此Alpha通道?我只有PNG图片,没有源文件,因为我的朋友为我制作了图片。
Answers:
假设您没有其他图像编辑器,则可以在Mac上的“预览”中将其打开,并使用“导出”选项以其他格式重新保存它-为确保摆脱alpha通道,最好导出转换为JPG(最佳质量),然后将其打开并再次将其导出为PNG。
话虽如此,我怀疑只要没有实际的透明度,就可以通过透明通道提交图标。
hasAlpha: yes
。另外,iTunes Store抱怨不需要的Alpha通道(“操作失败– App Store图标…不能透明也不能包含Alpha通道”)。
convert in.png -alpha off out.png
。回覆。预览:在导出对话框中打开/关闭“ alpha”会更改预测的文件大小,但是保存时始终会使用alpha信息(和相应的大小)写入文件。
如果您需要使用图标从目录中删除所有Alpha通道,请使用以下命令:
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;
,则将输出24bit png
如果您使用的是“预览”应用,则无需导出,然后在jpg和png之间重新导出,只需选择“导出”,然后在文件类型(PNG)下,您会看到一个alpha复选框,将其取消设置并保存。
您可以尝试imagemagick(也可以轻松调整大小以适应不同的大小):
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
尝试将我的应用程序上载到iTunes App Store时遇到以下错误:
iTunes Store操作失败
错误ITMS-90717:“无效的App Store图标。“ MyApp.app”中资产目录中的App Store图标不能透明,也不能包含Alpha通道。”
我通过在Finder中找到资产并查找其信息(⌘+ i),确认我的应用商店图标确实包含Alpha通道。在更多信息下面,它显示:
Alpha频道:是
找到了上面的解决方案,以使用Preview通过取消选中Alpha复选框将其导出来删除Alpha通道的方法,但是由于我有18个资产需要从中剥离Alpha通道,因此找到了一种批量导出它们的方法。
我可以批量导出的方式是在finder中选择我所有的应用程序图标资产>右键单击>打开(或使用预览打开)
现在,所有资产将显示在同一窗口中。全选(⌘+ a),然后选择“文件”>“导出选定的图像...”>“展开选项”>取消选中“ Alpha”复选框>选择(您的目标文件夹)
做完了!现在,您所有的图像都将被删除,而Alpha通道被去除。
在Flutter应用程序的上下文中遇到了同样的问题,我专门为此任务专门设计了一个简单的网站,您可以在其中删除图像的Alpha通道:
基本上,我直接在浏览器中使用Web Assembly运行ImageMagick,因此不会上传任何图像,并且不需要任何其他工具(例如Gimp)。
我将Nikita Pushkar的非常好的解决方案放入了一个shell脚本中,该脚本可转换在res/icon/ios
以下位置找到的所有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
我遇到了同样的问题,但是其他答案现在对我不起作用(可能是Apple Bug)。我发现您可以使用该网站从图像中删除Alpha通道。