Macos 如何使用Swift for OSX分割图像

Macos 如何使用Swift for OSX分割图像,macos,swift,xcode6,cgrect,cgimage,Macos,Swift,Xcode6,Cgrect,Cgimage,我正在将一个2880 x 2560图像拆分为两个1440 x 2560图像。我一直在尝试使用CGImageForProposedRect来实现这一点,但我不确定是否正确实现了这一点。以下是我到目前为止所做的(显示游乐场输出,代码附在末尾): 但是如果您注意到,即使CGRECT是1440x2560,leftImage和righimage也不是。这不是CGImageForProposedRect的工作原理吗?如果不是,为什么需要CGRect参数 import Cocoa import AppKit

我正在将一个2880 x 2560图像拆分为两个1440 x 2560图像。我一直在尝试使用
CGImageForProposedRect
来实现这一点,但我不确定是否正确实现了这一点。以下是我到目前为止所做的(显示游乐场输出,代码附在末尾):

但是如果您注意到,即使CGRECT是1440x2560,
leftImage
righimage
也不是。这不是
CGImageForProposedRect
的工作原理吗?如果不是,为什么需要CGRect参数

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(&leftImageRect, context: nil, hints: nil)
    var leftImage = NSImage(CGImage:leftImageRef!.takeUnretainedValue(), size:NSZeroSize)

    var rightImageRect:CGRect = CGRectMake(image.size.width/2.0, 0, image.size.width/2.0, image.size.height)
    var rightImageRef = image.CGImageForProposedRect(&rightImageRect, context: nil, hints: nil)
    var rightImage = NSImage(CGImage:rightImageRef!.takeUnretainedValue(), size:NSZeroSize)
}

看来

var leftImageRef = image.CGImageForProposedRect(&leftImageRect, context: nil, hints: nil)
var leftImage = NSImage(CGImage:leftImageRef!.takeUnretainedValue(), size:NSZeroSize)

解决了我的问题。但是我仍然不知道为什么,所以如果有人有更好的解释,我愿意选择它作为“正确答案”

谢谢

var leftImageRef = CGImageCreateWithImageInRect(imageRef!.takeUnretainedValue(), leftImageRect)
var leftImage = NSImage(CGImage:leftImageRef, size:NSZeroSize)