gpt4 book ai didi

objective-c - BaseSDK从10.5改为10.6后出现字体粗细问题

转载 作者:行者123 更新时间:2023-12-03 16:29:40 24 4
gpt4 key购买 nike

将项目的 BaseSDK 更改为 10.6 后,我注意到我的自定义绘制文本看起来不同(看图像:相同的绘制代码)

在 10.5 BaseSDK 下: image1

在 10.6 BaseSDK 下: image2

我正在使用 [(NSString *)myString drawInRect:myRect withAttributes:myAttributes] 进行绘图。

myAttributes = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
[NSColor myColor], NSForegroundColorAttributeName,
[NSFont systemFontOfSize:18], NSFontAttributeName,
paragraphStyle, NSParagraphStyleAttributeName,
shadow, NSShadowAttributeName, nil];

造成这种差异的原因是什么,或者如何减小字体的粗细?我尝试过减少厚度

[NSFontManager ConvertWeight:NO ofFont:font]

但看起来也好不了多少...

提前致谢。

最佳答案

如果我们放大并仔细观察这两个图像,我们会立即注意到差异(至少我是这样):

enter image description here

上图中的文本使用 CRT 风格的字体平滑,而下图像中的文本使用中 LCD 风格的字体平滑。 (所有 3 种 LCD 字体平滑样式都会在抗锯齿像素中引入色偏)。

我们需要有关您的测试设置的更多信息,以便能够说明为什么会发生这种情况。您在哪个版本的 OS X 下进行测试?例如,您的应用程序是针对 10.6 SDK 构建的,部署目标为 10.5,上图是在 OS X 10.5.x(在同一台计算机上)下测试时拍摄的,下图是在 10.6.x 下测试时拍摄的?或者,所有测试都是在 Mac OS X 10.6.x 中完成的,针对 10.5 SDK 构建会生成上图,而针对 10.6 SDK 构建会生成下图?您使用什么型号的 Mac?您连接了什么类型的外部 LCD 或 CRT 显示器(如果有)?

只是一些想法,没有上面要求的信息。我相信,10.5 中默认的字体平滑样式是 CRT,10.6 默认为“自动”。因此,如果您有一个带有 LCD 显示屏的系统,并且在 10.5 下进行测试,但从未更改过默认 CRT 样式的字体平滑样式,那么您将得到类似于上图的图像。如果您随后在同一系统上切换到 10.6,则 10.6 自动字体平滑可能会自动检测到您的 LCD 显示器,并使用中 LCD 风格的字体平滑,这会导致下图中的“看起来更重”的文本.

要记住的另一件事是字体平滑值是按主机存储的。例如,在我的计算机上,AppleFontSmoothing 值存储在 ~/Library/Preferences/ByHost/.GlobalPreferences.##########.plist 中,其中 #### ###### 是您的硬件 UUID。我想可能会为不同的主机设置存储 2 个不同的值。

关于objective-c - BaseSDK从10.5改为10.6后出现字体粗细问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5977821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com