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

2024-04-03

我们最近遇到了一些资产图像的问题,其中 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(使用前将#替换为@)

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

  • 无法使 csshX 在 Mac OS Big Sur 上运行

    csshX不适用于 Mac Big Sur 未实现 POSIX tmpnam 在 System Library Perl 5 28 darwin thread multi 2level POSIX pm 第 185 行使用 File Tem
  • java setFullScreenWindow 在 Mac 中隐藏登录对话框

    我使用的是全屏窗口 类似于屏幕保护程序 使用这里的方法 GraphicsEnvironment getLocalGraphicsEnvironment getDefaultScreenDevice setFullScreenWindow t
  • dyld:惰性符号绑定失败

    当我尝试运行时遇到一个奇怪的错误gatsby develop在新创建的 gatsby 项目中 这不应该与 gatsby js 静态站点生成器 有任何关系 因为我在不同的场合也遇到了相同的错误 当我跑步时gatsby develop在我的一个
  • 在 XCode 7.0.1 中设置 VTK 6.1

    所以 我遇到了问题VTK 可视化工具包 http www vtk org在 Mac OSX 上工作 特别是让它在XCode https developer apple com xcode 我让它工作并将在下面发布这个问题的答案 截至 201
  • AVCaptureDevice 找不到任何设备

    这行代码是我今天遇到的问题 macOS 应用程序 NSArray devices AVCaptureDevice devicesWithMediaType AVMediaTypeVideo 我更新Xcode后 系统总是让我空着devices
  • Java Swing For mac 中的 DJ Native Swing 浏览器

    我有一个用 Swing 制作的 Java 应用程序 并且使用了一个 DJ Native Swing 浏览器 当我尝试在 OS X 上使用它时 它抛出了一个NoClassDefFoundError尽管我添加了 swt jar 但始终如此 有人
  • OSX 上的 locale.getlocale() 问题

    我需要获取系统区域设置来执行许多操作 最终我想使用 gettext 翻译我的应用程序 我打算在 Linux 和 OSX 上分发它 但我在 OSX Snow Leopard 上遇到了问题 python Python 2 5 2 r252 60
  • 从 cocoa 编辑系统偏好设置

    有没有办法使用可可以编程方式编辑系统首选项 是否需要一些框架 我需要这样做来更改全局代理设置 另外 我的应用程序是沙盒的 有关于如何执行此操作的示例代码吗 感谢您的帮助 您正在寻找系统配置框架 但这并不容易 我认为沙盒应用程序不可能这样做
  • 如何在 MacBook Pro 上的 Docker 容器内运行 tkinter?

    我正在尝试运行一个使用以下命令的 python GUI 应用程序tkinter我的 MacBook Pro 上的 docker 容器内的模块 所以我安装了XQuartz https www xquartz org 并跟随本教程 https
  • Linux 可执行文件与 OS X“兼容”吗?

    如果您在基于 Linux 的平台上用 C 语言编译一个程序 然后将其移植以使用 MacOS 库 它会工作吗 来自编译器的核心机器代码在 Mac 和 Linux 上兼容吗 我问这个问题的原因是因为两者都是 基于 UNIX 的 所以我认为这是真
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 下载Xcode? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我刚刚升级到 OS X Mavericks 我很高兴能够使用所有新的 Mavericks 技术 我只有
  • 如何在 OSX 上安装 numpy 和 scipy?

    我是 Mac 新手 请耐心等待 我现在使用的是雪豹 10 6 4 我想安装numpy和scipy 所以我从他们的官方网站下载了python2 6 numpy和scipy dmg文件 但是 我在导入 numpy 时遇到问题 Library F
  • XCode 4.2.1 在 Lion 10.7.2 上启动时崩溃

    这周我买了大约 10 年来的第一台 Mac 是的 这是一台二手 Mac Pro 2x2GHz 双核 Xeon 2GB RAM 它全新安装了 Mac OS X Lion 10 7 2 我只安装了 OmniOutlner Pro Textmat
  • sed 没有给我正确的 Mac 换行符替换操作 - GNU sed 和 BSD / OSX sed 之间的差异 [重复]

    这个问题在这里已经有答案了 我正在使用这个参考 sed 帮助 匹配和替换文字 n 不是换行符 https stackoverflow com questions 19762365 sed help matching and replacin
  • dispatch_write() 和dispatch_read() 用法

    我只是在玩一些 GCD 函数来向文件写入和读取数据 其中两个函数是dispatch write and dispatch read 它允许向文件描述符写入和读取数据 而无需设置新的dispatch io t渠道 所以 我有以下代码 impo
  • 如何确定 OS X 中的文件编码?

    我正在尝试将一些 UTF 8 字符输入到 LaTeX 文件中TextMate http en wikipedia org wiki TextMate 它说它的默认编码是UTF 8 但LaTeX似乎不理解它们 Running cat my f
  • 需要一些建议来开始在 ARM(使用 Linux)平台上编程

    我 也许 很快就会在托管 Linux 发行版的 ARM 平台上工作 我不知道哪个发行版 我知道该项目涉及视频流 但我无法告诉你更多信息 其实我只收到通知 还没见到任何人 我从来没有在这样的平台上工作过 所以我的想法是在项目开始之前进行测试
  • Mac OS 上的诗歌安装失败,显示“should_use_symlinks”

    我正在尝试使用以下命令安装诗歌 curl sSL https install python poetry org python3 但它失败了 但有以下例外 例外 此版本的 python 无法在不使用符号链接的情况下创建 venvs 下面是详
  • Laravel/Homestead - OSX - Vagrant 连接超时

    Problem 我正在尝试让 Laravel Homestead 在我的 Mac Book Air 上运行 我已按照以下指示进行操作http laravel com docs 4 2 homestead http laravel com d

随机推荐