2015-07-01 3 views
5

Я хочу изменить размер NSImage с 512 пикселей до 60 пикселей, я нашел только код для iOS, но ничего не сделал для OSX.Как изменить размер NSImage в swift?

+0

[Это] (http://stackoverflow.com/a/30422317/5328140) ответ отлично работает для меня –

ответ

5

Я нашел функцию на 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!)! 
} 
+0

'NSImage! (Данные: newImage.TIFFRepresentation)' часть отходов много ресурсов без причины, просто 'return newImage'. – DarkDust