从 NSImage 获取 CGContextRef(不使用已弃用的 graphicsPort)
Getting a CGContextRef from an NSImage (without using the deprecated graphicsPort)
我想使用 CoreGraphics 绘制到 NSImage 中。我知道我可以获取图像的位图数据并创建一个新的 CGBitmapContext,绘制到它并制作一个新图像。事情是:我有一个 NSImage 并且我很懒惰 :D
以前我只做过:
[image lockFocus];
CGContextRef ctx = [NSGraphicsContext currentContext].graphicsPort
assert(ctx);
在 10.10 中,这已被弃用,但他们添加了不错的 属性 CGContext ......但它不适用于图像 ;)
[image lockFocus];
CGContextRef ctx = [NSGraphicsContext currentContext].CGContext
assert(ctx);
==> [NSSnapshotBitmapGraphicsContext CGContext]: 无法识别的选择器
这是错误还是意料之中。我的意思是..我想 NSImage 不需要由 CoreGraphics 支持..
我正在寻找一些见解:)
看起来像一个错误。将其提交给 Apple,然后继续使用已弃用的方法。
已弃用并不意味着不可用或 "don't dare use this"。这意味着应该尽可能避免在新代码中使用它,并且您应该考虑自己已收到警告,它最终可能会消失。
我想使用 CoreGraphics 绘制到 NSImage 中。我知道我可以获取图像的位图数据并创建一个新的 CGBitmapContext,绘制到它并制作一个新图像。事情是:我有一个 NSImage 并且我很懒惰 :D
以前我只做过:
[image lockFocus];
CGContextRef ctx = [NSGraphicsContext currentContext].graphicsPort
assert(ctx);
在 10.10 中,这已被弃用,但他们添加了不错的 属性 CGContext ......但它不适用于图像 ;)
[image lockFocus];
CGContextRef ctx = [NSGraphicsContext currentContext].CGContext
assert(ctx);
==> [NSSnapshotBitmapGraphicsContext CGContext]: 无法识别的选择器
这是错误还是意料之中。我的意思是..我想 NSImage 不需要由 CoreGraphics 支持..
我正在寻找一些见解:)
看起来像一个错误。将其提交给 Apple,然后继续使用已弃用的方法。
已弃用并不意味着不可用或 "don't dare use this"。这意味着应该尽可能避免在新代码中使用它,并且您应该考虑自己已收到警告,它最终可能会消失。