我有一个用于iOS的应用程序图标,但苹果不允许图像中存在alpha通道。如何去除这个alpha通道?我只有PNG图像,并没有源文件,因为我的朋友替我制作了这个图像。
不建议将文件导出为JPG格式,再重新导出为PNG格式。
以下是一种超级快速且简单的方法,可以在不进行额外导出或保存为(有损)JPG的情况下完成此操作:
使用Preview应用程序(Mac):
hasAlpha:yes
。此外,iTunes Store抱怨不想要的alpha通道(“操作失败-应用商店图标...不能透明,也不能包含alpha通道”)。 - Stefan如果您需要从带有图标的目录中删除所有alpha通道,请使用以下命令:
for i in `ls *.png`; do convert $i -background black -alpha remove -alpha off $i; done
如果您使用的是Mac OS Mojave,并且遇到了“convert command not found”错误
brew install imagemagick
安装Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
ls *.png
看起来不够健壮,如果文件名包含空格,则会出现意外情况。使用 for i in *.png
是否更好呢?出于同样的原因,您还应该在 convert 命令中双引号引用 "$i" 的两个实例。 - mwfearnley假设您没有其他图像编辑器,那么您可以在Mac上的预览中打开它,并使用导出选项将其重新保存为不同的格式- 为了确保摆脱 Alpha 通道,最好将其导出为 JPG(最佳质量),然后再次打开并将其导出为 PNG。
话虽如此,我怀疑只要没有实际透明度,提交具有透明通道的图标可能是可以的。
你可以尝试使用ImageMagick(也可以轻松调整大小以适应不同的大小):
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
在将我的应用程序上传到iTunes应用商店时,遇到了以下错误:
iTunes Store操作失败
ERROR ITMS-90717:“无效的App Store图标。我的应用程序中的资源目录中的App Store图标不能是透明的,也不能包含Alpha通道。”
我确认我的应用商店图标确实包含了Alpha通道,通过定位Finder中的资源文件并查看其信息(⌘+i),在更多信息下面显示:
Alpha通道:是
我发现上述解决方案可以使用“预览”来取消Alpha通道,方法是导出时取消复选框,但考虑到我需要从18个资源文件中删除Alpha通道,因此想出一种批量导出它们的方法。
我让批量导出工作正常的方法是在Finder中选择所有应用程序图标资源文件 > 右键单击 > 打开(或使用预览打开)
现在所有资源文件将出现在同一个窗口中。选择所有资源文件(⌘+a),然后选择文件 > 导出所选图片... > 展开选项 > 取消选中Alpha复选框 > 选择(您的目标文件夹)
完成!现在你所有的图片都已经导出并且已经取消了Alpha通道。
如何从PNG文件中移除alpha通道:
在Mac上: 如果您使用的是macOS Sierra版本的Preview 9.0,则可以在导出或保存图像的同时移除alpha通道。
但是,在macOS High Sierra版本的Preview 10.0(944.2)上,无论是导出还是保存都不能移除alpha通道。
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://dev59.com/N18e5IYBdhLWcg3wCGu_#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
好的,既然您使用的是Mac电脑,下次您可以使用Automator。将图片转换成BMP(无损)格式,再转回PNG格式。让它保存,就大功告成了...