我有一组使用CGPath
生成的形状。我想保存我在磁盘上生成的所有CGPath。基本上我想将这些CGPath呈现为NSImage
,以便我可以将它们保存在磁盘上或至少保存它们的Base64
编码字符串。
以下是在iOS上完成的示例 - Export CGPath as JPG or PNG
我正在尝试在Mac上做类似的事情。我正在使用MonoMac
,并且不介意任何Objective-C答案。我甚至不是在寻找代码,只需要一些提示即可。
我有一个CGPath作为方法的参数,该方法返回NSImage。对于在另一个模块中生成的所有CGPath,将调用此方法。
答案 0 :(得分:1)
我在Google上搜索并找人后找到了答案
需要CGBitmapContext
使用CGBitmapContext
创建IntPtr.Zero
的实例,以便Quartz可以为您分配内存
var context = new CGBitmapContext (IntPtr.Zero, width, height,
8, 4 * column, CGColorSpace.CreateDeviceRGB (),
CGImageAlphaInfo.PremultipliedFirst))
然后设置描边颜色
context.SetStrokeColor (new CGColor (0.5f, 0.5f, 0.5f));
设置线宽
context.SetLineWidth (2f);
将CGPath
添加到此上下文
context.AddPath (cgpath);
然后划出路径
context.StrokePath ()
从上下文中获取CGImage
并从中创建NSImage
var cgimg = context.ToImage ();
var nsImage = new NSImage (cgimg, new CGSize (cgimg.Width, cgimg.Height));