删除图像中的Alpha通道

时间:2014-10-03 00:41:16

标签: ios image alpha

我有适用于iOS的应用程序图标,但Apple不允许alpha在图像中。如何删除此Alpha通道?我只有我的png图像我没有源文件,因为我的朋友为我做了图像。

13 个答案:

答案 0 :(得分:158)

不建议将已导出的答案导出到JPG,然后再返回PNG。

  • 这是这个过程中的一个额外步骤(2个出口)
  • JPG是有损的,因此您将丢失一些图像数据

这是一种超快速简便的方法,无需额外导出或保存到(有损)JPG:

使用预览应用(Mac):

  1. 打开图片
  2. Command-Shift-S 复制(创建副本)
  3. Command-S 保存
  4. 取消选中“Alpha”复选框
  5. 从文件名删除“复制”(包括空格)
    • 这将覆盖您的原件,如果您想保留原件,只需在名称中留下“复制”
  6. 保存
  7. 点击“替换”以确认您要覆盖原始内容
    • 仅在覆盖原件时才需要 remove alpha channel

答案 1 :(得分:38)

假设您没有其他图像编辑器,那么您可以在Mac上的预览中打开它,并使用导出选项以不同的格式重新保存它 - 以确保您摆脱alpha通道,它可能是最好导出到JPG(最好的质量),然后打开它并再次将其导出为PNG。

话虽如此,我怀疑你提交带有透明度频道的图标可能没问题,只要没有实际的透明度。

答案 2 :(得分:32)

如果您使用预览应用程序,则无需导出然后在jpg和png之间重新导出,只需选择导出,在文件类型(PNG)下方,您将看到一个字母复选框,取消设置并保存。

答案 3 :(得分:13)

首先无需将图像导出到jpg。您可以取消选中Alpha通道的复选框,并直接从png导出到预览应用中没有Alpha通道的png。

enter image description here

答案 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通道:

Remove Alpha Channel

基本上,我直接在浏览器中使用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通道。