2014-09-22 40 views
1

我正在使用Mac OS X(不是iOS)上的矢量圖形繪圖工具,並且在做矢量圖形原語時,我遇到了像素之間的經典繪圖,這些繪圖導致線條模糊等。我直接將Core Graphics/Quartz用於CGBitmapContext。如何在Mac OS X上的CGBitmapContext上進行像素對齊/像素完美/後備存儲對齊/清晰繪製?

我發現this blog post和產生它的堆棧溢出問題,並且我不想將0.5添加到每個座標,因爲該文章宣稱這會在Retina屏幕上斷開。

該文章提到使用後備存儲座標,但我無法在Core Graphics中找到任何後備存儲功能,更不用說只是CGBitmapContext。我試過CGContextConvertPointToDeviceSpace()CGContextConvertPointToUserSpace(),都無濟於事。

My bitmap context is transformed.

我有什麼選擇?謝謝。

替代問題:有沒有一種方法,我可以不使用點座標,所以(4,4)總是(4,4)而不是(3.5,3.5)或者是古怪的東西?這全部用於內存鏡像,所以DPI還沒有太多問題。謝謝。

回答

2

這對我來說,直接從手冊。希望它可以幫助某人:)

CGRect r = CGRectMake(0,0,20,20); 
r = CGContextConvertRectToDeviceSpace(context, r); 
r.origin.x = floor(r.origin.x); 
r.origin.y = floor(r.origin.y); 
r.size.width = floor(r.size.width); 
r.size.height = floor(r.size.height); 
r = CGContextConvertRectToUserSpace(context, r);