mbs*_*eid 1 macos cocoa objective-c
我一直在尝试在我的应用程序中将NSString添加到NSImage.由于某种原因,它似乎非常模糊和嘈杂.以下是保存为jpeg的输出.
http://i.stack.imgur.com/QHVQF.jpg
我已经读过它可能是因为它在一个非圆形数字的点上绘制,但它似乎没有改变任何东西.我确保绳子完全是整数.
以下是我添加文字的方法:
[generatedRectangle lockFocus];
//Draw according to the settings
[color set];
NSRectFill(NSMakeRect(0, 0, sizeX, sizeY));
NSPoint p = NSMakePoint(round(sizeX/2), round(sizeY/2));
[text drawAtPoint:p withAttributes:NULL];
Run Code Online (Sandbox Code Playgroud)
然后我通过使用NSBitmapImageRep捕获它来保存它并将其传递给保存面板.我实际上是通过这个命令编写文件:
[[generatedRect representationUsingType: NSJPEGFileType properties: nil]
writeToFile:[save filename] atomically: YES])
Run Code Online (Sandbox Code Playgroud)
关于文本为何如此模糊的任何想法?我很久以前用完了想法.
非常感谢所有帮助.
iwa*_*bed 15
当我创建要绘制的上下文时,我的问题是没有使用适当的视网膜显示比例因子:
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0f);
Run Code Online (Sandbox Code Playgroud)
如果你使用的UIGraphicsBeginImageContext(<#CGSize size#>)话那就是iOS 4.0和更低的API,所以它就像你不在视网膜显示器上那样绘制它.
请注意,Quartz在中间像素边界上绘制,因此您可能需要确保-drawAtPoint:withAttributes:坐标不是整数,而是在X和Y中偏移半个像素(例如:10.5,10.5而不是10.0,10.0).
此外,请确保绘制的层次结构中的视图的起源都是整数像素边界.即使文本绘图视图的一个超视图关闭也可能导致渲染模糊.Color Misaligned Layers如果这些视图是图层支持的,您可以使用Core Animation乐器的选项来跟踪它.
| 归档时间: |
|
| 查看次数: |
3414 次 |
| 最近记录: |