你如何绘制CGContextRef并保存为png?

时间:2012-05-30 06:14:15

标签: objective-c macos cocoa

我有一个空间,它绘制到一个给定的CGContextRef,它通常在自定义视图的drawRect例程中提供,但是我还需要生成一个可以绘制的CGContextRef,这样我就可以将生成的图像保存为一个PNG文件。

1 个答案:

答案 0 :(得分:4)

原来这很简单:

NSImage *toSave = [[NSImage alloc] initWithSize:CGSizeMake(600, 900)];

[toSave lockFocus];

CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort];

//drawing code

[toSave unlockFocus];

NSBitmapImageRep *imgRep = [[toSave representations] objectAtIndex: 0];

NSData *data = [imgRep representationUsingType: NSPNGFileType properties: nil];

[data writeToFile: @"/path/to/file.png" atomically: NO];