CGImage 到 NSImage Swift
CGImage to NSImage with Swift
我正在尝试从 CGImage 创建 NSImage,但不断出现这些错误。我关注了 documentation
我尝试使用 xcode.
中的提示
import Cocoa
import AppKit
import CoreGraphics
let image = NSImage(named:"image")
if let image = image {
var imageRect:CGRect = CGRectMake(0, 0, image.size.width, image.size.height)
var imageRef = image.CGImageForProposedRect(&imageRect, context: nil, hints: nil)
var leftImageRect:CGRect = CGRectMake(0, 0, image.size.width/2.0, image.size.height)
var leftImageRef = image.CGImageForProposedRect(&imageRect, context: nil, hints: nil)
var leftImage = NSImage(CGImage:leftImageRef, size:NSZeroSize)
var rightImageRect:CGRect = CGRectMake(image.size.width/2.0, 0, image.size.width/2.0, image.size.height)
var rightImageRef = image.CGImageForProposedRect(&imageRect, context: nil, hints: nil)
var rightImage = NSImage(CGImage:rightImageRef)
var testImage = NSImage(CGImage:rightImageRef, flipped:)
}
因为leftImageRef
不是一个CGImage。这是一个Unmanaged<CGImage>?
。您需要先解包并提供内存管理,然后才能使用它。
如果你说 leftImageRef!.takeUnretainedValue()
你会得到一个 CGImage。 (强制解包应该是安全的,但是如果你担心这个NSImage可能画不出来,当然可以再小心解包。)
我正在尝试从 CGImage 创建 NSImage,但不断出现这些错误。我关注了 documentation 我尝试使用 xcode.
中的提示import Cocoa
import AppKit
import CoreGraphics
let image = NSImage(named:"image")
if let image = image {
var imageRect:CGRect = CGRectMake(0, 0, image.size.width, image.size.height)
var imageRef = image.CGImageForProposedRect(&imageRect, context: nil, hints: nil)
var leftImageRect:CGRect = CGRectMake(0, 0, image.size.width/2.0, image.size.height)
var leftImageRef = image.CGImageForProposedRect(&imageRect, context: nil, hints: nil)
var leftImage = NSImage(CGImage:leftImageRef, size:NSZeroSize)
var rightImageRect:CGRect = CGRectMake(image.size.width/2.0, 0, image.size.width/2.0, image.size.height)
var rightImageRef = image.CGImageForProposedRect(&imageRect, context: nil, hints: nil)
var rightImage = NSImage(CGImage:rightImageRef)
var testImage = NSImage(CGImage:rightImageRef, flipped:)
}
因为leftImageRef
不是一个CGImage。这是一个Unmanaged<CGImage>?
。您需要先解包并提供内存管理,然后才能使用它。
如果你说 leftImageRef!.takeUnretainedValue()
你会得到一个 CGImage。 (强制解包应该是安全的,但是如果你担心这个NSImage可能画不出来,当然可以再小心解包。)