2011-02-17 57 views
2

在最近的iOS技术中,我听到了一个关于“确保您的绘图操作是像素对齐”的建议。如何确保绘图操作在Mac上与像素对齐?

这是一个有效的Mac/iOS绘图性能建议吗?

另一个问题是我如何确定我的代码是与像素对齐绘制?
有什么工具或窍门可以帮助吗?

+0

声明所涉及的绘图技术是什么? – justin 2011-02-18 05:33:28

+0

通过绘制性能我指的是Cocoa绘图API,Quartz绘图API,Core Animation API(基本上我们用来开发应用程序UI的所有东西,不包括的技术,例如:openGL)。 – Jonny 2011-02-28 05:52:31

回答

8

像素对齐与性能没有任何关系,但与渲染图形的质量有关。

来解释它,最好的办法是显示的代码一点点:

//Assume this is drawing in a rect such as a button or other NSView 
NSBezierPath *line = [NSBezierPath bezierPath]; 
[line moveToPoint:NSMakePoint(0,0)]; 
[line lineToPoint:NSMakePoint(200,0)]; 
[[NSColor redColor] set]; 
[line stroke]; 

如果你尝试这个代码,你会看到一条红线。如果仔细观察,线条不会非常尖锐 - 红色将被清除,宽度看起来像是大约2个像素宽。这是因为在Cocoa中使用点而不是像素。结果是该线正在两个像素之间绘制。 (欲了解更多信息,请通过在文档可可拉出引导阅读。)

现在,如果我们做一些简单的改变......

//Assume this is drawing in a rect such as a button or other NSView 
NSBezierPath *line = [NSBezierPath bezierPath]; 
[line moveToPoint:NSMakePoint(0,0.5)]; 
[line lineToPoint:NSMakePoint(200,0.5)]; 
[[NSColor redColor] set]; 
[line stroke]; 

执行该代码,你会看到你的输出可能最初是有意的

有很多可以说这个,但基本上抵消你的积分0.5,你应该没问题。