2011-02-17 34 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,你應該沒問題。