特定的PNG压缩类型是否与macOS Cocoa应用程序不兼容?

特定的PNG压缩类型是否与macOS Cocoa应用程序不兼容?,macos,cocoa,macos-sierra,Macos,Cocoa,Macos Sierra,我们最近遇到了一些资产图像的问题,在非视网膜设备上使用了视网膜@2x版本。存在资产的视网膜和非视网膜版本。我们已经追踪到压缩的问题,所以我们现在可以避免它,但是如果有人有更多的见解,我很乐意听到他们 左侧的图标显示了它们在running应用程序中的渲染方式。视网膜资源正在非视网膜屏幕上使用,因此它们被缩小到50%,这导致了一些模糊的边缘 右侧的图标是原始资源 这只发生在某些资产上。大部分应用程序都还可以。我们一直在使用压缩程序中使用的PNG。ImageOptim正在为资产使用各种压缩组合。以下

我们最近遇到了一些资产图像的问题,在非视网膜设备上使用了视网膜
@2x
版本。存在资产的视网膜和非视网膜版本。我们已经追踪到压缩的问题,所以我们现在可以避免它,但是如果有人有更多的见解,我很乐意听到他们

左侧的图标显示了它们在running应用程序中的渲染方式。视网膜资源正在非视网膜屏幕上使用,因此它们被缩小到50%,这导致了一些模糊的边缘

右侧的图标是原始资源

这只发生在某些资产上。大部分应用程序都还可以。我们一直在使用压缩程序中使用的PNG。ImageOptim正在为资产使用各种压缩组合。以下是常见的最佳结果:

  • PNGOUT
  • PNGOUT+AdvPNG
  • PNGOUT+Zopfli
  • advpn+Zopfli
有问题的资产似乎都在使用
PNGOUT+Zopfli
,但并非所有有
PNGOUT+Zopfli
的资产都是坏的。但我对这个诊断不是100%有信心

考虑到这个问题并不总是很容易发现,而且我也不知道到底出了什么问题,不幸的是,我们决定不压缩Mac应用程序中使用的新PNG。这是一个遗憾,因为节省空间是好的

我们尝试了几种不同的Xcode项目设置,包括打开和关闭
组合高分辨率艺术品

我想得到一些答案,但我也在这里发布,所以有些信息可能会帮助其他人解决这个问题,即使我只有部分解决方案


你以前见过这个问题吗?
如果您已经看到了,您有解决方案吗?有关此错误的更多信息,请参见:

OSX不喜欢混合类型的PNG


除了强制PNG对使用相同的
color\u type

默认情况下,使用颜色类型和分辨率[]选择
NSImage
表示法外,似乎没有解决方案。对于PNG文件,有时更通用的颜色类型会生成更小的文件。这就是造成表示之间混合颜色类型的原因

您需要将
首选项颜色匹配
设置为
。有用户定义的运行时属性可以在不离开Interface Builder的情况下执行此操作。这将解决问题


Hi Marc-为什么您的颜色类型与上述图像不匹配?ImageOptim过程是否为不同颜色类型的用户找到了更小的结果?有没有办法限制ImageOptim过程中扫描的颜色类型?@fbrereto我认为ImageOptim只是单独处理每个源图像,并通过各种处理组合来运行它,以找到最小的无损结果。有时,1×图像和2×图像的颜色类型不匹配。我认为没有办法限制颜色类型,但是Kornel(ImageOptim的开发人员)知道并正在研究一些解决方案。非常好的解决方案,谢谢。我很高兴此信息现在在这里,以便其他人可以找到它。:)