如何通过 Swift 使用 NSSlider 为 NSImage 类调整亮度?

Posted

技术标签:

【中文标题】如何通过 Swift 使用 NSSlider 为 NSImage 类调整亮度?【英文标题】:How to adjust brightness with NSSlider for NSImage class via Swift? 【发布时间】:2016-08-03 21:22:50 【问题描述】:

我需要使用 NSSlider 控制我上传的图像(JPEG、PNG、TIFF 等)的透明度(或不透明度)。我该怎么做? 这是用 AppDelegate.swift 编写的代码

@IBAction func importButton(sender: AnyObject) 

    let uploadFile: NSOpenPanel = NSOpenPanel()       
    uploadFile.allowsMultipleSelection = false
    uploadFile.canChooseFiles = true
    uploadFile.canChooseDirectories = false
    uploadFile.runModal()
    let chosenPicture = uploadFile.URL

    if(chosenPicture != nil)            
        let pictureImport = NSImage(contentsOfURL: chosenPicture!)
        imageWell.image = pictureImport
    


@IBAction func brightnessSlider(sender: AnyObject) 

    //var alpha = sender...

【问题讨论】:

【参考方案1】:

试试这个

@IBAction func brightnessSlider(sender: NSSlider) 

    var alpha = sender.minValue + (sender.doubleValue-sender.minValue)/(sender.maxValue-sender.minValue)
    imageWell.alphaValue = CGFloat(alpha)



如果您的 minValue 始终为 0,则 alpha 的计算会变得更简单:

var alpha = sender.doubleValue/sender.maxValue

【讨论】:

以上是关于如何通过 Swift 使用 NSSlider 为 NSImage 类调整亮度?的主要内容,如果未能解决你的问题,请参考以下文章

将 NSSlider 增加 0.1? macOS、斯威夫特

如何使用 Swift 为 Cocoa 应用程序中的 NSLider 值更改设置动画

oc之mac中自定义NSSlider

NSSlider:如何同时发送值和动作?

NSSlider 动画

更改 NSSlider 栏颜色