Apple 发布了新版本的 iTunes Connect,当我尝试在 iTunes Connect 上为我的应用设置屏幕截图时收到一条错误消息。
"Images can't contain alpha channels or transparencies."
https://i.stack.imgur.com/D7yIp.png
我发现您也可以在预览中重新导出 png,但在保存时取消选中 Alpha 复选框。
https://i.stack.imgur.com/MemhT.png
不允许具有透明度的 AFAIK png。使用 jpg 或更新您的 png(photoshop 或您用来创建 png 的任何工具)并删除透明区域。如果您使用阴影,请使用 jpg,这不会让人头疼。
它是如此容易...
在预览应用程序中打开图像单击文件-> 导出并取消选中 alpha
为此,我制作了一个新的简单工具。您可以在几秒钟内移除多个 .png 文件的 Alpha 通道(透明度)。
https://i.stack.imgur.com/ltWmv.png
您可以从这里下载http://alphachannelremover.blogspot.com
使用 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 的输出
将照片上传到 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 中打开照片。在图层菜单下,单击图层蒙版,然后单击从透明度。通过右键单击“图层”面板中的蒙版并选择“删除图层蒙版”来删除图层蒙版。
如果您使用的是 Photoshop,请转到文件 > 保存为网页(Command + Option + Shift + S)。确保未选中透明度,这应该可以工作。
2019年仍然是一个问题:=)
这对我有用:选择您要上传的所有图像 -> 右键单击 -> 在预览中打开 -> 导出 -> 取消选中 alpha -> 使用导出的图像。
扩展罗马 B. 答案。这仍然是一个问题,我正在上传一个科尔多瓦应用程序。我使用 mogrify
的解决方案:
brew install imagemagick
* navigate to `platforms/ios/<your_app_name>/Images.xcassets/AppIcon.appiconset`*
mogrify -alpha off *.png
然后存档并验证成功。 👍
在 Pixelmator 上,您可以使用“共享 > 导出为 Web...”(⇧ + ⌘ + E)
https://i.stack.imgur.com/yfLfX.png
并在工具选项栏中取消选择透明度。
https://i.stack.imgur.com/cyG3e.png
您可以使用标志“-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/
遇到同样的问题,试试用JPG格式!!在这里对我有用的是使用 jpg 文件而不是 PNG,因为 jpg 文件不使用 alpha 或透明度功能。我是通过在线图像转换器完成的,或者您也可以在预览中打开图像,然后文件->导出并取消选中 alpha 作为选项以保存图像并使用此图像。
为了解决这个问题,我使用烟花将我的 png32 文件批量转换为 png24,以便快速轻松地上传。 Jpeg 也可以,但是有损。
遇到同样的问题,试试用JPG格式!!
Photoshop
切片保存为网络取消选中透明度
您可以在预览中导出为没有 Alpha 的 PNG。只需打开您的图像,选择导出,选择 PNG,取消选中 Alpha,然后单击保存。如果您一次打开所有图像,预览还支持批量导出。
如果您安装了 imagemagick,那么您可以将以下别名放入您的 .bash_profile 中。它将目录中的每个 png 转换为 jpg,这会自动删除 alpha。您可以使用生成的 jpg 文件作为屏幕截图。
alias pngToJpg='for i in *.png; do convert $i ${i/.png/}.jpg; done'
在这里对我有用的是使用 jpg 文件而不是 PNG,因为 jpg 文件不使用 alpha 或透明度功能。我是通过在线图像转换器完成的,或者您也可以在预览中打开图像,然后文件->导出并取消选中 alpha 作为选项以保存图像并使用此图像。
您可以简单地创建一个新的 Photoshop 文档并将其默认背景设置为白色而不是透明。然后,将您的图像复制并粘贴到新创建的文档中并保存。
从草图导出
为避免透明,请确保没有图层超出画板边界。
在 Windows 10 上,您可以使用 Paint 3D。
打开图像 在顶部菜单中选择“画布” 在右侧面板中取消选中“透明画布”复选框 保存
将您的 PNG 图像转换为 JPEG 格式。
不定期副业成功案例分享