如何在swift中调整NSImage的大小?

Tom*_*997 5 macos xcode nsimage swift

我想将NSImage的大小从512px调整到60px,我发现只有iOS的代码,但没有OSX的代码.

小智 9

我在GitHub上找到了一个函数,它对我来说很好.

func resize(image: NSImage, w: Int, h: Int) -> NSImage {
    var destSize = NSMakeSize(CGFloat(w), CGFloat(h))
    var newImage = NSImage(size: destSize)
    newImage.lockFocus()
    image.drawInRect(NSMakeRect(0, 0, destSize.width, destSize.height), fromRect: NSMakeRect(0, 0, image.size.width, image.size.height), operation: NSCompositingOperation.CompositeSourceOver, fraction: CGFloat(1))
    newImage.unlockFocus()
    newImage.size = destSize
    return NSImage(data: newImage.TIFFRepresentation!)!
}
Run Code Online (Sandbox Code Playgroud)

  • “ NSImage(data:newImage.TIFFRepresentation!)!”部分无缘无故浪费了很多资源,只是`return newImage`。 (4认同)