我有适用于iOS的应用程序图标,但Apple不允许alpha在图像中。如何删除此Alpha通道?我只有我的png图像我没有源文件,因为我的朋友为我做了图像。
答案 0 :(得分:158)
不建议将已导出的答案导出到JPG,然后再返回PNG。
这是一种超快速简便的方法,无需额外导出或保存到(有损)JPG:
使用预览应用(Mac):
答案 1 :(得分:38)
假设您没有其他图像编辑器,那么您可以在Mac上的预览中打开它,并使用导出选项以不同的格式重新保存它 - 以确保您摆脱alpha通道,它可能是最好导出到JPG(最好的质量),然后打开它并再次将其导出为PNG。
话虽如此,我怀疑你提交带有透明度频道的图标可能没问题,只要没有实际的透明度。
答案 2 :(得分:32)
如果您使用预览应用程序,则无需导出然后在jpg和png之间重新导出,只需选择导出,在文件类型(PNG)下方,您将看到一个字母复选框,取消设置并保存。
答案 3 :(得分:13)
答案 4 :(得分:12)
如果您需要使用图标从目录中删除所有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
答案 5 :(得分:10)
您可以尝试使用imagemagick(也可以轻松调整大小):
convert in.png -background black -alpha remove -alpha off -resize 1024x1024 out.png
答案 6 :(得分:7)
尝试将我的应用上传到iTunes应用商店时出现以下错误:
iTunes Store操作失败
错误ITMS-90717:&#34;无效的App Store图标。 “我的应用程序”中的资产目录中的App Store图标。不能透明,也不能包含alpha频道。&#34;
我确认我的应用商店图标确实包含了Alpha通道,方法是在Finder中查找资产并查找其信息(⌘+ i)。在更多信息下面,它显示:
Alpha频道:是
找到上面的解决方案,使用预览删除alpha通道,方法是取消选中Alpha复选框,但是想办法批量导出它们,因为我需要18个资源来剥离alpha通道。
批量导出工作的方式是在finder中选择我的所有app图标资源&gt;右键单击&gt;打开(或打开预览)
现在,所有资产都会显示在同一窗口中。全选(⌘+ a),然后选择文件&gt;导出所选图像...&gt;展开选项&gt;取消选中Alpha复选框&gt;选择(您的目标文件夹)
完成!现在,所有图像都会在删除Alpha通道的情况下导出。
答案 7 :(得分:5)
从png中移除Alpha通道:
在Mac上: 如果导出或保存图像,预览版9.0(macOS Sierra)可以删除Alpha通道。
预览版10.0(944.2)(macOS High Sierra)不会删除Alpha通道。 导出和/或保存都不会从图像中删除Alpha通道。
答案 8 :(得分:4)
在Flutter应用程序的上下文中遇到了相同的问题,我专门为此任务专门设计了一个简单的网站,您可以在其中删除图像的Alpha通道:
基本上,我直接在浏览器中使用Web Assembly运行ImageMagick,因此您的图像均不会上传,并且您不需要任何其他工具,例如Gimp。
答案 9 :(得分:2)
好吧,既然你在Mac上,下次你可能只想使用Automator。将图像转换为BMP(无损)并返回PNG。让它保存并瞧瞧...
答案 10 :(得分:1)
预览中不再出现alpha复选框
答案 11 :(得分:0)
我将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
答案 12 :(得分:-2)
我遇到了同样的问题,但其他答案现在对我不起作用(可能是Apple的错误)。我发现您可以使用this website从图像中删除Alpha通道。