ChatGPT解决这个技术问题 Extra ChatGPT

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

Apple 发布了新版本的 iTunes Connect,当我尝试在 iTunes Connect 上为我的应用设置屏幕截图时收到一条错误消息。

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

https://i.stack.imgur.com/D7yIp.png

iTunes Connect 开发人员指南中未提及:developer.apple.com/library/ios/documentation/…
只需将图像转换为对我有用的 JPG 格式!
我自己编写的第一个图像上传器可以采用任何大小的 jpeg、png 或 gif,正确旋转它,并输出所需压缩级别的 jpeg。显然我可以制作图片上传器,而苹果不能。而且与 Apple 不同,我从来没有梦想过强迫我的用户“哦,只需手动从 PNG 中删除 alpha!为每张图片!”。
当 iTunes Connect 不允许时,xcode 允许这样做是很糟糕的。

S
Smikey

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

https://i.stack.imgur.com/MemhT.png


考虑到他们建议您这样做,iTunes Connect 不会接受 Xcode 生成的屏幕截图,这很荒谬。
出于某种莫名其妙的原因,当我这样做时,它会将尺寸减半,现在 iTC 的尺寸“错误”! WTF苹果???
可以理解的是,手头只有 178B 美元的现金,Apple 无法修复这个愚蠢的错误,并且需要成千上万的开发人员自己一遍又一遍地繁琐地执行此操作。啊。
我可以给这个人 100 票来解决我的问题吗
双击照片“文件”->“导出...”
b
brush51

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


也为我工作。Thx
JPEG 是有损的,这是一个非常糟糕的主意。查看其他答案并正确删除透明度。
只需在预览中打开并导出为 JPEG 即可解决问题。 XCode 的设备屏幕截图以 PNG 格式保存,这就是问题所在。使用设备拍摄屏幕(主页按钮 + 电源按钮)以 JPEG 格式保存。
您可以在预览中导出为没有 Alpha 的 PNG。只需打开您的图像,选择导出,选择 PNG,取消选中 Alpha,然后单击保存。如果您一次打开所有图像,预览还支持批量导出。
很好的答案,但我注意到 .jpg 结果不好,所以我只是在 Photoshop 设置背景层中打开图像并设置其白色颜色,以便删除图像透明度并将此图像用作 PNG。
M
Marek Manduch

它是如此容易...

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


这在 Mac OS High Sierra 上不起作用,请尝试使用较低版本在没有 alpha 的情况下导出。希望它可以帮助某人。
非常简单的解决方案。谢谢!
在卡塔利娜工作。用白色替换任何透明度。
b
bpolat

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

https://i.stack.imgur.com/ltWmv.png

您可以从这里下载http://alphachannelremover.blogspot.com


谢谢你。我讨厌 Apple 在捕获、保存和将屏幕截图发送到 iTunesConnect 商店的过程中又增加了一步。
这个工具非常简单但非常有用。否则我不得不花时间使用 Apple 的 Preview App 来一一去除透明度,非常耗时。现在可以只用一张照片制作多个文件。
非常好用,谢谢!对于 Apple 拥有的所有程序员,您会认为他们可以自动剥离 Alpha 通道。我发誓我上传的所有图标都没有任何透明度,但提交失败只是因为它们以允许透明的格式保存。叹
不客气。实际上,我为自己制作了这个程序,因为我在将我的应用程序提交给 Apple 时感到沮丧,然后决定在这里与社区分享它是 github 上的开源,你可以查看代码或使用你喜欢的方式。
完美的!你今天为我节省了一两个小时。由于重新设计,要上传 475 张图片!
R
Roman B.

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

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

5月3日更新

您可以通过运行来判断图像是否包含 alpha 通道:

sips -g all image.png

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

UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0); 

使用命令 sips -g hasAlpha *.png 可以缩短检查 alpha 的输出
mogrify -alpha 关闭 👍
g
grg

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

您可以通过 Preview、Photos App(旧 iPhoto)、Pixelmator、Adobe Photoshop 和 GIMP 来完成此操作。

预习

在预览中打开照片(如果照片在照片应用程序(旧 iPhoto)中的相册中,则只需将其从相册拖到桌面。然后按住 Control 单击(鼠标右键单击)复制的照片并选择预览.app 在打开方式菜单下)。选择File菜单下的Export...,选择目的地后,取消选中底部的Alpha,然后单击Export。

像素化器

在 Pixelmator 中打开图像,而不创建新的 Pixelmator 文件。只需将照片拖到 Pixelmator 窗口即可。从共享菜单中,单击导出为 Web... 在顶部栏中,取消选择透明度。单击下一步,然后将新文件保存在某处。

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

GIMP

在 GIMP 中打开照片。打开图层菜单。在透明度下,单击移除 Alpha 通道。保存照片。

Adobe Photoshop

在 Adobe Photoshop 中打开照片。在图层菜单下,单击图层蒙版,然后单击从透明度。通过右键单击“图层”面板中的蒙版并选择“删除图层蒙版”来删除图层蒙版。


这在 Mac OS High Sierra 上不起作用,请尝试使用较低版本在没有 alpha 的情况下导出。希望它可以帮助某人。
H
Hector Lopez

如果您使用的是 Photoshop,请转到文件 > 保存为网页(Command + Option + Shift + S)。确保未选中透明度,这应该可以工作。


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

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

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


伟大的!有时需要选择多个图像,以便右键单击左侧边栏图像。
M
M. Junaid Salaat

扩展罗马 B. 答案。这仍然是一个问题,我正在上传一个科尔多瓦应用程序。我使用 mogrify 的解决方案:

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

然后存档并验证成功。 👍


非常感谢!
b
brass

我能够使用 imageoptim 删除 alpha 通道并压缩 png 文件。


H
H6.

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

https://i.stack.imgur.com/yfLfX.png

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

https://i.stack.imgur.com/cyG3e.png


n
nizama bunti

我有同样的问题,只需在线压缩 https://tinypng.com/ 上的 png 文件,然后尝试上传新的压缩 png 文件。

它为我工作。


这对我不起作用 - 它仍然有一个 alpha 通道
c
codehead

您可以使用标志“-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/


R
Rahul Parikh

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


这会改变照片的质量吗?
M
Matthew

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


A
Amit Ajmera

遇到同样的问题,试试用JPG格式!!


4
4b0

Photoshop

切片保存为网络取消选中透明度


U
Usama Ali

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


W
William Jockusch

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

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

jpg 意味着质量下降,我不会那样做,除非我真的需要它实际上更小。
S
Som

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


是的,但是您在使用 jpeg 时遇到了麻烦。它们本质上是为像照片这样的“嘈杂”图像而设计的,但会导致在图像上出现伪像,这些图像具有很多块颜色和像屏幕截图这样的直边。
u
user2298995

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


i
invisible squirrel

从草图导出

为避免透明,请确保没有图层超出画板边界。


k
kjetilh

在 Windows 10 上,您可以使用 Paint 3D。

打开图像 在顶部菜单中选择“画布” 在右侧面板中取消选中“透明画布”复选框 保存


k
kalpeshdeo

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


iTunes Connect 不接受 jpeg 的某些内容。例如,IOS App 图标必须是 png。