图像不能包含 alpha 通道或透明度。

381

苹果发布了新版本的iTunes Connect,当我尝试为我的应用程序在iTunes Connect上设置截图时,出现了错误信息。

"Images can't contain alpha channels or transparencies." 

enter image description here


该内容未在iTunes Connect开发者指南中提及:https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/FirstSteps.html#//apple_ref/doc/uid/TP40011225-CH19-SW10 - razor28
30
将图片转换为JPG格式对我很有效! - Jayprakash Dubey
2
我自己编写的第一个图像上传器可以处理任何大小的jpeg、png或gif,正确旋转它,并输出所需压缩级别的jpeg。显然,我可以制作图像上传器,而苹果却不能。与苹果不同的是,我永远不会想到强迫我的用户“噢,只需手动从PNG中删除alpha通道!对于每张图片都要这样做”。 - Henrik Erlandsson
在这里尝试以下简单的步骤:https://dev59.com/N18e5IYBdhLWcg3wCGu_ - eranda.del
一个简单的技巧!!!将您的png转换为jpg格式,就可以开始了。立即转换 - Soban Arshad
显示剩余2条评论
23个回答

517

我发现你也可以在Preview中重新导出png文件,但保存时取消勾选Alpha复选框。

输入图像描述


50
iTunes Connect 不接受 Xcode 生成的截图,这太荒谬了,因为这正是他们建议的方法。 - Joseph Toronto
19
苹果手头只有1780亿美元现金,难以负担修复这个愚蠢的漏洞,因此需要成千上万的开发人员反复耐心地执行这个操作。唉。 - Nate
但愿我能给这个人100个赞,因为他解决了我的问题。 - Noor
2
双击照片 -> "文件" -> "导出..." - Arjay Waran
这是正确的答案,但我不得不在文件资源管理器左下角点击“显示选项”才能看到“Alpha”复选框。此外,它莫名其妙地无法同时处理多张照片。我必须一个一个地处理以去除 Alpha。 - Fernando Rojo
显示剩余2条评论

283

据我所知,带有透明度的png是不被允许的。使用jpg格式或者更新你的png文件(使用Photoshop或其他工具),删除透明部分。如果你需要用到阴影效果,请使用jpg格式,这样会更加方便。


6
JPEG 是有损压缩的,这是个非常糟糕的想法。请查看其他答案并正确删除透明度。 - Rudolf Adamkovič
37
在Preview中,你可以将图片导出为不带Alpha通道的PNG格式。只需打开图片,选择导出,选中PNG格式,取消勾选Alpha通道,然后点击保存即可。如果你一次打开多张图片,Preview也支持批量导出功能。 - Russell Ladd

131

很容易...

预览 应用中打开图像,点击 文件 -> 导出取消勾选 alpha 通道


这在Mac OS High Sierra上不起作用,请尝试较低版本以无Alpha导出。希望能帮到某些人。 - Satheesh
适用于Catalina。将任何透明部分替换为白色。 - Marcy

93

我制作了一个新的简单工具,可以在几秒钟内移除多个.png文件的Alpha通道(透明度)。

Alpha通道移除器

您可以从这里下载。


82
使用ImageMagick软件包中的mogrify工具来移除alpha通道。
brew install imagemagick
cd folder_with_images
mogrify -alpha off */*.png

5月3日更新

运行以下命令可以判断图片是否包含透明通道:

sips -g all image.png

如果您在iOS模拟器中呈现屏幕截图,可以通过将BOOL opaque = YES传递给UIGraphicsBeginImageContextWithOptions来删除Alpha通道:

UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0); 

4
使用命令sips -g hasAlpha *.png可以获得检查alpha通道的简短输出。 - Anton Matosov

36

上传照片至iTunes Connect时需移除阿尔法通道。

可通过以下软件进行操作:Preview、Photos App (旧版iPhoto)、Pixelmator、Adobe Photoshop和GIMP。

Preview

  1. 在Preview中打开照片(如果照片在您的相册中,只需从相册拖到桌面,然后按住Control键单击(用鼠标右键单击)复制的照片,在打开菜单中选择“Preview.app”)。

  2. 在文件菜单下选择“导出…”,选择目的地后,在底部取消选中“Alpha”,然后单击“导出”

    File ==> Export...

    Alpha

Pixelmator

  1. 在Pixelmator中打开图像,不要创建新的Pixelmator文件。只需将照片拖到Pixelmator窗口即可。

  2. 从共享菜单中,点击“导出为Web…”

    PM

  3. 在顶部栏中取消选中“透明度”

  4. 单击“下一步”,然后将新文件保存在某处。

最后,将新照片上传至iTunes Connect。

GIMP

  1. 在GIMP中打开照片。

  2. 打开“图层”菜单。

  3. 透明度下,单击删除Alpha通道

  4. 保存照片。

Adobe Photoshop

  1. 在Adobe Photoshop中打开照片。

  2. 图层菜单下,单击图层蒙版,然后单击从透明度创建

  3. 通过右键单击图层面板中的蒙版并选择删除图层蒙版来删除图层蒙版。


1
这在Mac OS High Sierra上不起作用,请尝试较低版本以无Alpha导出。希望对某人有所帮助。 - Satheesh

11

如果您使用的是Photoshop,请选择 文件 > 保存为Web所用格式(Command + Option + Shift + S)。确保“透明度”未被勾选,这样就可以正常工作了。


奇怪。这对单个图像有效,但当我尝试保存操作并执行批量导出时,生成的图像仍然具有 alpha 通道。 - kelin

10

2019年仍然存在一个问题:=)

这对我有用: 选择所有要上传的图像 -> 右键单击 -> 在预览中打开 -> 导出 -> 取消选中alpha通道 -> 使用导出的图像。


9

对罗曼·B的回答进行扩展。这仍然是一个问题,我正在上传一个cordova应用。我的解决方案使用mogrify

brew install imagemagick
* navigate to `platforms/ios/<your_app_name>/Images.xcassets/AppIcon.appiconset`*
mogrify -alpha off *.png

然后成功存档并验证。


5
在Pixelmator中,您可以使用“分享>导出为Web...”(++E),并在工具选项栏中取消选择透明度

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接