2

我整天都在电脑上试图弄清楚如何在现有的 NSImage 上画一些线。

它可以正常工作,但是我使用的代码

CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);

缺点是我必须知道图像中的位数,所以结果是生成的位图有时确实比原始 NSImage 具有更低的图像质量。

直接在 NSImage 上简单地画线的最简单/最快的方法是什么?

如果代码同时兼容 Mac OSX 和 iOS,那就太好了。

4

1 回答 1

4

NSImage 在 iOS 上不存在,因此代码必须不同。在 NSImage 上绘图相当容易。

例子:

- (void)drawCrosshair:(NSImage*)img
{
    [img lockFocus];

    NSBezierPath* path = [NSBezierPath bezierPath];

    [path moveToPoint:CGPointMake(90,100)];
    [path lineToPoint:CGPointMake(110,100)];

    [path moveToPoint:CGPointMake(100,90)];
    [path lineToPoint:CGPointMake(100,110)];

    [[NSColor blackColor] set];
    [path stroke];
    [img unlockFocus];
}
于 2014-12-17T01:39:09.387 回答