2012-05-30 72 views
1

我有一個void,繪製到一個給定的CGContextRef,通常在自定義視圖的drawRect例程中提供,但是我也需要生成一個CGContextRef,它可以繪製到這將允許我將結果圖像保存爲PNG文件。你如何繪製到CGContextRef並保存爲PNG?

+0

可能重複http://stackoverflow.com/questions/2568421/how-do- i-save-what-i-have-drawn-in-a-cgcontext) –

+0

@Danich nope,這是關於OSX的,而不是iOS。 –

回答

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]; 
的[我如何保存我所抽吸的CGContext上(
+0

這在我身上墜毀(os x Yosemite,Xcode 6)。幸運的是,我在這個問題中發現了cobbal的答案:http://stackoverflow.com/questions/12223739/ios-to-mac-graphiccontext-explanation-conversion – CodePlumber