我正在使用Mac OS X(不是iOS)上的矢量图形绘图,而且我在Mac OS X上遇到导致线条模糊的像素之间的经典绘图。做矢量图形基元。我直接使用Core Graphics / Quartz处理CGBitmapContext。
我发现了this blog post以及产生它的Stack Overflow问题,而且我不想在每个坐标上添加0.5,因为该文章声称这会在Retina屏幕上中断。
文章提到了使用后备存储坐标,但我无法在Core Graphics中找到任何后备存储功能,更不用说只有CGBitmapContext。
我已经尝试了CGContextConvertPointToDeviceSpace()
和CGContextConvertPointToUserSpace()
,两者都无济于事。
My bitmap context is transformed.
我有哪些选择?感谢。
替代问题:有没有办法让我不能使用点坐标,这样(4,4)总是(4,4)而不是(3.5,3.5)或者古怪的东西?这完全适用于内存中的图像,因此DPI还不是一个大问题。感谢。
答案 0 :(得分:3)
这对我来说非常有用,直接来自手册。希望它可以帮助某人:)
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);