图片不能包含Alpha通道或透明胶片


331

苹果发布了新版本的iTunes Connect,当我尝试为我的应用在iTunes连接上设置“屏幕截图”时,出现错误消息。

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

在此处输入图片说明


那不是iTunes Connect的开发者指南中提到:developer.apple.com/library/ios/documentation/...
razor28

15
只需将图像转换为JPG格式对我有用!
Jayprakash Dubey'1

1
我写的第一个图像上传器可以采用任何大小的jpeg,png或gif,可以正确旋转它,并输出所需压缩级别的jpeg。显然,我可以使图像上载器,而Apple不能。而且与苹果公司不同,我从来没有梦想过要用户强制“哦,只需手动从PNG中删除alpha!就为每张图片!”。
Henrik Erlandsson

当iTunes Connect不允许时,xcode允许这样做很可惜。
詹姆斯·T·斯内尔

Answers:


262

不允许使用具有透明性的AFAIK png。使用jpg或更新您的png(photoshop或用于创建png的任何东西)并删除透明区域。如果您使用阴影,请使用jpg,这不会让人头疼。


也为我工作。Thx–
Honey

6
JPEG有损,这是一个可怕的想法。查看其他答案,并适当删除透明度。
RudolfAdamkovič2014年

3
只需在预览中打开并导出为JPEG即可解决此问题。XCode的设备屏幕截图保存在PNG中,这就是问题所在。使用设备拍摄屏幕(主页按钮+电源按钮)以JPEG格式保存。
Anna Billstrom

33
您可以在预览中导出为不带alpha的PNG。只需打开图像,选择导出,选择PNG,取消选中Alpha,然后单击保存。如果您一次打开所有图像,预览版还支持批量导出。
罗素·拉德

1
好的答案,但我注意到.jpg效果不好,所以我只是在Photoshop中打开图像并设置了背景层,并将其设置为白色,以便去除图像透明度并将该图像用作PNG。
Nitin Gohel 2015年

467

我发现您也可以只在预览中重新导出png,但是在保存时取消选中Alpha复选框。

在此处输入图片说明


48
考虑到他们建议您这样做,iTunes Connect不接受Xcode生成的屏幕截图是很荒谬的。
约瑟夫·多伦多

由于某些莫名其妙的原因,当我这样做时,它会将尺寸切成两半,现在对于iTC来说是“错误的尺寸”!WTF苹果???
mharper 2014年

13
可以理解的是,手头仅有$ 178B的现金,Apple无法承担解决这个愚蠢的bug的麻烦,并且需要成千上万的开发人员一次又一次地乏味地执行此操作。啊。
内特2015年

我可以给这个人100票来解决我的问题
吗?

2
双击照片“文件”->“导出...”
Arjay Waran

102

这么简单...

预览应用程序中打开图像,单击文件->导出取消选中Alpha


这在Mac OS High Sierra上不起作用,请尝试使用较低版本导出而不使用alpha。希望它能帮助某人。
Satheeshwaran

非常简单的解决方案。谢谢!
Lina T

在卡塔利娜(Catalina)工作。用白色替换所有透明度。
Marcy

85

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

阿尔法通道去除剂

您可以从此处下载 http://alphachannelremover.blogspot.com


17
谢谢。我讨厌苹果公司在捕获,保存屏幕快照并将其发送到iTunesConnect商店的过程中又增加了一步。
Andrew Smith

2
该工具非常简单,但非常有用。否则,我不得不花时间使用Apple的Preview App逐个删除透明度,这非常耗时。现在,只需一次拍摄就可以制作多个文件。
bpolat 2014年

1
非常方便,谢谢!对于苹果公司拥有的所有程序员,您都认为他们可以自动剥离Alpha通道。我发誓我上传的所有图标都没有任何透明度,但是提交失败只是因为它们以允许透明的格式保存。叹息
devios1 2014年

2
别客气。实际上,由于我在将应用程序提交给Apple时感到沮丧,因此我为自己编写了该程序,然后决定与社区共享它。它是github上的开源代码,您可以查看代码或使用自己喜欢的代码。
bpolat 2014年

1
完善!你今天救了我一两个小时。经过重新设计,有475张图片要上传!
南希

73

使用软件包中的mogrify工具ImageMagick删除Alpha通道。

brew install imagemagick
cd folder_with_images
mogrify -alpha off */*.png

5月3日更新

您可以通过运行以下命令来判断图像是否包含Alpha通道:

sips -g all image.png

如果你渲染的屏幕截图在IOS模拟器可以通过使下降alpha通道BOOL opaque = YESUIGraphicsBeginImageContextWithOptions

UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0); 

3
使用命令可以缩短检查alpha的输出sips -g hasAlpha *.png
Anton Matosov

mogrify -alpha off👍–
系统

27

将照片上传到iTunes Connect时,必须删除Alpha通道。

您可以通过Preview,Photos App(旧的iPhoto),Pixelmator,Adobe Photoshop和GIMP来执行此操作。

预习

1-在“预览”中打开照片(如果照片在“照片”应用程序中的相册(旧的iPhoto)中,然后将其从相册中拖到桌面上,然后按住Control键单击(在鼠标上单击鼠标右键)复制的照片,然后选择“打开方式”菜单下的Preview.app)。

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

文件==>导出...

Α

Pixelmator

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

2-从共享菜单中,单击导出为网站...

下午

3-在顶部栏中,取消选择透明度

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

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

GIMP

1-在GIMP中打开照片。

2-打开图层菜单。

3-在“ 透明度”下,单击“ 删除Alpha通道”

4-保存照片。

Adobe Photoshop

1-在Adobe Photoshop中打开照片。

2-在“ 图层”菜单下,单击“ 图层蒙版”,然后单击从透明胶片”

3-右键单击“图层”面板中的遮罩,然后选择“ 删除图层遮罩”,以删除图层遮罩


1
这在Mac OS High Sierra上不起作用,请尝试使用较低版本导出而不使用alpha。希望它能帮助某人。
Satheeshwaran

11

如果您使用的是Photoshop,请转到“文件”>“保存为Web”(命令+选项+ Shift + S)。确保未选中透明度,这应该可以工作。


奇怪。这适用于单个图像。但是,当我尝试保存操作并执行批量导出时,生成的图像仍然具有Alpha。
凯林

6

2019年仍然是一个问题:=)

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


5

在Pixelmator上,您可以使用“共享>导出为Web ...”(+ + E

在此处输入图片说明

并在工具选项栏中取消选择透明度

在此处输入图片说明


5

扩展罗马B.答案。这仍然是一个问题,我上载了cordova应用。我的解决方案使用mogrify

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

然后成功归档并验证。👍




3

您可以使用标志“ -c 2”从命令行使用pngcrush从PNG文件中删除Alpha通道:

$ file input.png
input.png: PNG image data, 1024 x 1024, 8-bit/color RGBA, non-interlaced
$ pngcrush -q -c 2 input.png output.png
libpng warning: iCCP: known incorrect sRGB profile
$ file output.png
output.png: PNG image data, 1024 x 1024, 8-bit/color RGB, non-interlaced

注意从RGBA到RGB的变化:Alpha通道消失了!

pngcrush位于http://pmt.sourceforge.net/pngcrush/


2

面对同样的问题,尝试使用JPG格式!在这里对我有用的是使用jpg文件而不是PNG,因为jpg文件不使用Alpha或透明度功能。我是通过在线图像转换器完成的,也可以在预览中打开图像,然后在File-> Export中打开并取消选中alpha作为选项来保存图像并使用该图像。


1

为了解决这个问题,我使用fireworks将png32文件批量转换为png24,以便快速,轻松地上传。Jpeg也可以,但是有损。



1

的Photoshop

  1. 切成薄片
  2. 储存网路
  3. 取消选中透明度

0

如果安装了imagemagick,则可以将以下别名放入.bash_profile中。它将目录中的每个png转换为jpg,从而自动删除Alpha。您可以将生成的jpg文件用作屏幕截图。

alias pngToJpg='for i in *.png; do convert $i ${i/.png/}.jpg; done'

jpg意味着质量下降,只有在我真的需要缩小尺寸的情况下,我才这样做。
Zsolt Szatmari

0

在这里对我有用的是使用jpg文件而不是PNG,因为jpg文件不使用Alpha或透明度功能。我是通过在线图像转换器完成的,也可以在预览中打开图像,然后在File-> Export中打开并取消选中alpha作为选项来保存图像并使用该图像。


是的,但是您在使用jpeg时遇到了麻烦。它们本质上是为“嘈杂”图像(如照片)设计的,但会导致在具有大量块色和笔直边缘(如屏幕截图)的图像上出现失真。
JamEngulfer 2015年

0

您可以简单地创建一个新的Photoshop文档,并将其默认背景设置为“白色”,而不是“透明”。然后,将图像复制并粘贴到新创建的文档中并保存。


0

您可以在预览中导出为不带alpha的PNG。只需打开图像,选择导出,选择PNG,取消选中Alpha,然后单击保存。如果您一次打开所有图像,预览版还支持批量导出。


0

从草图导出

为避免透明,请确保没有任何层超出画板范围。


-2

将您的PNG图像转换为JPEG格式。


iTunes Connect在某些情况下不接受jpeg。例如,iOS App图标必须为png。
eclux
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.