macos – 图像的Retina版本总是在非视网膜显示器上使用

macos – 图像的Retina版本总是在非视网膜显示器上使用,第1张

概述在 Cocoa应用程序中,我有一个16×16和32×32 @ 2x版本的图像:.当图像在NS ImageView中显示时,Mac OS X总是选择更高分辨率的版本(即在非视网膜显示器上缩小@ 2x图像而不是使用1:1版本). (左边的IB =好的,右边正在运行的app =缩小的混乱) 当然我已经将两个图像添加到项目中(如image.png和[email protected]). 如果我从应用程序包中删除@ 在 Cocoa应用程序中,我有一个16×16和32×32 @ 2x版本的图像:.当图像在NS ImageVIEw中显示时,Mac OS X总是选择更高分辨率的版本(即在非视网膜显示器上缩小@ 2x图像而不是使用1:1版本).

(左边的IB =好的,右边正在运行的app =缩小的混乱)

当然我已经将两个图像添加到项目中(如image.png和[email protected]).

如果我从应用程序包中删除@ 2x图像,则OS X将显示较低分辨率的图像.

无论Xcode(4.6.2)是否将它们组合成.tiff(我已经检查过组合的.tiff包含两个图像),都会发生错误.

奇怪的是,这只发生在这个特定的图像上.相同项目中的其他1x / 2x图像与屏幕DPI正确显示.

怎么可能?!图像必须满足除大小和文件名模式以外的一些特殊标准吗?

解决方法 原来是NSImage的preferscolorMatch属性[1]:

The default value is YES. Both color matching and resolution matching may influence the choice of an image representation.

可以在Interface Builder [2]中的用户定义的运行时属性中设置为NO.

[1] https://developer.apple.com/documentation/appkit/nsimage/1520010-preferscolormatch

[2] Are specific PNG compression types incompatible with macOS Cocoa apps?

总结

以上是内存溢出为你收集整理的macos – 图像的Retina版本总是在非视网膜显示器上使用全部内容,希望文章能够帮你解决macos – 图像的Retina版本总是在非视网膜显示器上使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1002846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存