美文网首页
macOS开发:调整NSImage尺寸大小

macOS开发:调整NSImage尺寸大小

作者: HarveyCC | 来源:发表于2018-12-23 18:41 被阅读35次

原文链接

extension NSImage {
    
    func resize(_ to: CGSize, isPixels: Bool = false) -> NSImage {
        
        var toSize = to
        let screenScale: CGFloat = NSScreen.main?.backingScaleFactor ?? 1.0

        if isPixels {
            
            toSize.width = to.width / screenScale
            toSize.height = to.height / screenScale
        }
    
        let toRect = NSRect(x: 0, y: 0, width: toSize.width, height: toSize.height)
        let fromRect =  NSRect(x: 0, y: 0, width: size.width, height: size.height)
        
        let newImage = NSImage(size: toRect.size)
        newImage.lockFocus()
        draw(in: toRect, from: fromRect, operation: NSCompositingOperation.copy, fraction: 1.0)
        newImage.unlockFocus()
    
        return newImage
    }
}

使用

let myImage = NSImage(named: "imageName")!
        
/// 调整到指定point(点)
let newSize = CGSize(width: 200, height: 100)
let newImage1 = myImage.resize(newSize)
        
/// 调整到指定Pixels(像素)
let newPixels = CGSize(width: 400, height: 200)
let newImage2 = myImage.resize(newPixels, isPixels: true)

相关文章

网友评论

      本文标题:macOS开发:调整NSImage尺寸大小

      本文链接:https://www.haomeiwen.com/subject/yggnkqtx.html