2015-07-01 16 views
5

Voglio ridimensionare un NSImage da 512px a 60px, ho trovato solo il codice per iOS, ma niente per OSX.Come ridimensionare NSImage in swift?

+0

[Questo] (http://stackoverflow.com/a/30422317/5328140) risposta funziona perfettamente bene per me –

risposta

5

Ho trovato una funzione su GitHub, sta funzionando bene per me.

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

Il 'NSImage! (Dati:! NewImage.TIFFRepresentation)' rifiuti parte un sacco di risorse per nessun motivo, basta "return newImage". – DarkDust