我们最近遇到了一些资产图像的问题,其中 Retina@2x
版本正在非 Retina 设备上使用。存在资源的 Retina 和非 Retina 版本。我们已经将问题归结为压缩,因此我们现在可以避免它,但如果有人有其他见解,我很想听听他们的意见。
左侧的图标显示了它们在运行的应用程序中的渲染方式。视网膜资源正在非视网膜屏幕上使用,因此它们被缩小到 50%,这导致了一些模糊的边缘。
右边的图标是原始资源。
这种情况仅发生在某些资产上。大多数应用程序都可以。我们一直在使用图像优化 https://imageoptim.com压缩应用程序中使用的 PNG。 ImageOptim 对资源使用多种压缩组合。这些是常见的最佳结果:
PNGOUT
PNGOUT+AdvPNG
PNGOUT+Zopfli
AdvPNG+Zopfli
有问题的资产似乎都在使用PNGOUT+Zopfli
,但并非所有资产PNGOUT+Zopfli
很糟糕。但我对这个诊断并不是 100% 有信心。
鉴于这个问题并不总是很容易发现,而且我不知道到底出了什么问题,我们不幸地决定不压缩 Mac 应用程序中使用的新 PNG。这是一种耻辱,因为节省空间是好事。
我们尝试了几种不同的 Xcode 项目设置,包括转动Combine High Resolution Artwork
开启和关闭。
我想要一些答案,但我也在这里发帖,所以有一些信息可以帮助其他人解决这个问题,即使我只有部分解决方案。
您以前见过这个问题吗?
如果你看到了,你有解决办法吗?
默认情况下,NSImage
使用颜色类型和分辨率选择表示形式[1 https://developer.apple.com/documentation/appkit/nsimage/1520010-preferscolormatch]。对于 PNG 文件,有时更通用的颜色类型会产生更小的文件。这就是导致表示之间混合颜色类型的原因。
你需要设置prefersColorMatch
to NO
。有用户定义的运行时属性无需离开 Interface Builder 即可完成此操作。这将解决这个问题。
如何在Interface Builder中设置prefersColorMatch https://i.stack.imgur.com/8tdxk.png
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)