我正在寻找扩展,以在Swift中使用Cocoa(macOS)从NSImage
对象创建NSGradient
。
liangshiming1980 回答:使用Cocoa(macOS)从NSGradient获取NSImage
这是在Swift 5中执行的操作:
extension NSImage {
convenience init?(gradientColors: [NSColor],imageSize: NSSize) {
guard let gradient = NSGradient(colors: gradientColors) else { return nil }
let rect = NSRect(origin: CGPoint.zero,size: imageSize)
self.init(size: rect.size)
let path = NSBezierPath(rect: rect)
self.lockFocus()
gradient.draw(in: path,angle: 0.0)
self.unlockFocus()
}
}