【发布时间】:2011-10-26 05:42:09
【问题描述】:
首先,我知道这个话题之前已经多次提出,但我发布这个问题是因为我过去使用的任何“解决方案”都没有在这个特定案例中起作用。我正在向由我的 NSToolbar 中的视图托管的 CALayer 绘制一些文本。文本如下所示:
我尝试使用来自 this StackOverflow 帖子的建议,即调用 CGContextSetShouldSmoothFonts(ctx, false) 在绘制到上下文之前关闭子像素抗锯齿。这是一个在过去给我带来可接受结果的解决方案,但在这种情况下,它似乎使文本看起来更糟:
那篇文章中提到的另一个解决方案是在绘制之前用不透明的背景颜色填充矩形,在这种情况下这是不可能的,因为工具栏背景是渐变的。有什么办法可以让这个文本看起来和绘制成普通 NSView 的文本一样漂亮吗?
【问题讨论】:
-
我相信 CA 渲染没有子像素抗锯齿,因为它不知道图层与屏幕像素的对齐方式。但在许多情况下,图层完全对齐,因此子像素抗锯齿是合适的。我还没有找到具体的解决方案——+1,希望我们能得到一个很好的答案:)
-
另外:您发布的第一个屏幕截图有什么问题?你想要的结果是什么?
-
很难用语言来解释,但文字看起来有点过于尖锐/清晰。它看起来几乎是锯齿状的。从那张小屏幕截图中很难看出,但是一旦您看到与应用程序的其余部分相比的整体情况,就会非常明显
-
我最近问了同样的问题。看看它;也许会有所帮助:stackoverflow.com/questions/6858205/…。不幸的是,你将不得不忍受它。这根本不可能……
标签: objective-c cocoa core-animation calayer nsview