Converting RGB to HSV in macOS









up vote
-1
down vote

favorite












I have the following code to convert RGB to HSV. This uses UIColor which is part of the UIKit. UIKit is not available in macOS. What is the alternative to do this in macOS?



func getHue(red: CGFloat, green: CGFloat, blue: CGFloat) -> CGFloat 

let color = UIColor(red: red, green: green, blue: blue, alpha: 1)
var hue: CGFloat = 0
color.getHue(&hue, saturation: nil, brightness: nil, alpha: nil)
return hue










share|improve this question























  • kirb.me/2018/06/07/iosmac-research.html
    – Eray Balkanli
    Nov 11 at 4:48














up vote
-1
down vote

favorite












I have the following code to convert RGB to HSV. This uses UIColor which is part of the UIKit. UIKit is not available in macOS. What is the alternative to do this in macOS?



func getHue(red: CGFloat, green: CGFloat, blue: CGFloat) -> CGFloat 

let color = UIColor(red: red, green: green, blue: blue, alpha: 1)
var hue: CGFloat = 0
color.getHue(&hue, saturation: nil, brightness: nil, alpha: nil)
return hue










share|improve this question























  • kirb.me/2018/06/07/iosmac-research.html
    – Eray Balkanli
    Nov 11 at 4:48












up vote
-1
down vote

favorite









up vote
-1
down vote

favorite











I have the following code to convert RGB to HSV. This uses UIColor which is part of the UIKit. UIKit is not available in macOS. What is the alternative to do this in macOS?



func getHue(red: CGFloat, green: CGFloat, blue: CGFloat) -> CGFloat 

let color = UIColor(red: red, green: green, blue: blue, alpha: 1)
var hue: CGFloat = 0
color.getHue(&hue, saturation: nil, brightness: nil, alpha: nil)
return hue










share|improve this question















I have the following code to convert RGB to HSV. This uses UIColor which is part of the UIKit. UIKit is not available in macOS. What is the alternative to do this in macOS?



func getHue(red: CGFloat, green: CGFloat, blue: CGFloat) -> CGFloat 

let color = UIColor(red: red, green: green, blue: blue, alpha: 1)
var hue: CGFloat = 0
color.getHue(&hue, saturation: nil, brightness: nil, alpha: nil)
return hue







swift macos






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 11 at 4:55









rmaddy

235k27306373




235k27306373










asked Nov 11 at 4:47









techno

1,675104597




1,675104597











  • kirb.me/2018/06/07/iosmac-research.html
    – Eray Balkanli
    Nov 11 at 4:48
















  • kirb.me/2018/06/07/iosmac-research.html
    – Eray Balkanli
    Nov 11 at 4:48















kirb.me/2018/06/07/iosmac-research.html
– Eray Balkanli
Nov 11 at 4:48




kirb.me/2018/06/07/iosmac-research.html
– Eray Balkanli
Nov 11 at 4:48












3 Answers
3






active

oldest

votes

















up vote
1
down vote













In macOS, use NSColor instead UIColor.



func getHue(red: CGFloat, green: CGFloat, blue: CGFloat) -> CGFloat
let color = NSColor(red: red, green: green, blue: blue, alpha: 1)
var hue: CGFloat = 0
color.getHue(&hue, saturation: nil, brightness: nil, alpha: nil)
return hue






share|improve this answer




















  • It should be noted that you need to import AppKit to use NSColor.
    – rmaddy
    Nov 11 at 4:56

















up vote
0
down vote













You should be using NSColor on macOS instead of UIColor. The two are similar, though NSColor allows for better color management, should you need it. It includes a similar getHue(_, saturation, brightness, alpha) method.






share|improve this answer



























    up vote
    0
    down vote













    I would implement this a bit differently:



    import AppKit

    extension NSColor
    var hsba: (hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat)
    var hue: CGFloat = 0
    var saturation: CGFloat = 0
    var brightness: CGFloat = 0
    var alpha: CGFloat = 0
    self.getHue(
    &hue,
    saturation: &saturation,
    brightness: &brightness,
    alpha: &alpha
    )
    return (hue, saturation, brightness, alpha)




    This lets you easily access not just the hue, but the satuation, brightness and alpha as well. And it doesn't require you manually provide 3 seperate rgb components. You can just call it on any existing NSColor instance. You might initialize one using rgb components, but you could also use any other other NSColor instance, such as one returned by another API, or one of the static value like NSColor.blue).



    print(NSColor.green.hsba.hue)





    share|improve this answer




















      Your Answer






      StackExchange.ifUsing("editor", function ()
      StackExchange.using("externalEditor", function ()
      StackExchange.using("snippets", function ()
      StackExchange.snippets.init();
      );
      );
      , "code-snippets");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "1"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53245926%2fconverting-rgb-to-hsv-in-macos%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes








      up vote
      1
      down vote













      In macOS, use NSColor instead UIColor.



      func getHue(red: CGFloat, green: CGFloat, blue: CGFloat) -> CGFloat
      let color = NSColor(red: red, green: green, blue: blue, alpha: 1)
      var hue: CGFloat = 0
      color.getHue(&hue, saturation: nil, brightness: nil, alpha: nil)
      return hue






      share|improve this answer




















      • It should be noted that you need to import AppKit to use NSColor.
        – rmaddy
        Nov 11 at 4:56














      up vote
      1
      down vote













      In macOS, use NSColor instead UIColor.



      func getHue(red: CGFloat, green: CGFloat, blue: CGFloat) -> CGFloat
      let color = NSColor(red: red, green: green, blue: blue, alpha: 1)
      var hue: CGFloat = 0
      color.getHue(&hue, saturation: nil, brightness: nil, alpha: nil)
      return hue






      share|improve this answer




















      • It should be noted that you need to import AppKit to use NSColor.
        – rmaddy
        Nov 11 at 4:56












      up vote
      1
      down vote










      up vote
      1
      down vote









      In macOS, use NSColor instead UIColor.



      func getHue(red: CGFloat, green: CGFloat, blue: CGFloat) -> CGFloat
      let color = NSColor(red: red, green: green, blue: blue, alpha: 1)
      var hue: CGFloat = 0
      color.getHue(&hue, saturation: nil, brightness: nil, alpha: nil)
      return hue






      share|improve this answer












      In macOS, use NSColor instead UIColor.



      func getHue(red: CGFloat, green: CGFloat, blue: CGFloat) -> CGFloat
      let color = NSColor(red: red, green: green, blue: blue, alpha: 1)
      var hue: CGFloat = 0
      color.getHue(&hue, saturation: nil, brightness: nil, alpha: nil)
      return hue







      share|improve this answer












      share|improve this answer



      share|improve this answer










      answered Nov 11 at 4:50









      kishikawa katsumi

      8,33012441




      8,33012441











      • It should be noted that you need to import AppKit to use NSColor.
        – rmaddy
        Nov 11 at 4:56
















      • It should be noted that you need to import AppKit to use NSColor.
        – rmaddy
        Nov 11 at 4:56















      It should be noted that you need to import AppKit to use NSColor.
      – rmaddy
      Nov 11 at 4:56




      It should be noted that you need to import AppKit to use NSColor.
      – rmaddy
      Nov 11 at 4:56












      up vote
      0
      down vote













      You should be using NSColor on macOS instead of UIColor. The two are similar, though NSColor allows for better color management, should you need it. It includes a similar getHue(_, saturation, brightness, alpha) method.






      share|improve this answer
























        up vote
        0
        down vote













        You should be using NSColor on macOS instead of UIColor. The two are similar, though NSColor allows for better color management, should you need it. It includes a similar getHue(_, saturation, brightness, alpha) method.






        share|improve this answer






















          up vote
          0
          down vote










          up vote
          0
          down vote









          You should be using NSColor on macOS instead of UIColor. The two are similar, though NSColor allows for better color management, should you need it. It includes a similar getHue(_, saturation, brightness, alpha) method.






          share|improve this answer












          You should be using NSColor on macOS instead of UIColor. The two are similar, though NSColor allows for better color management, should you need it. It includes a similar getHue(_, saturation, brightness, alpha) method.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 11 at 4:50









          user1118321

          19.2k43963




          19.2k43963




















              up vote
              0
              down vote













              I would implement this a bit differently:



              import AppKit

              extension NSColor
              var hsba: (hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat)
              var hue: CGFloat = 0
              var saturation: CGFloat = 0
              var brightness: CGFloat = 0
              var alpha: CGFloat = 0
              self.getHue(
              &hue,
              saturation: &saturation,
              brightness: &brightness,
              alpha: &alpha
              )
              return (hue, saturation, brightness, alpha)




              This lets you easily access not just the hue, but the satuation, brightness and alpha as well. And it doesn't require you manually provide 3 seperate rgb components. You can just call it on any existing NSColor instance. You might initialize one using rgb components, but you could also use any other other NSColor instance, such as one returned by another API, or one of the static value like NSColor.blue).



              print(NSColor.green.hsba.hue)





              share|improve this answer
























                up vote
                0
                down vote













                I would implement this a bit differently:



                import AppKit

                extension NSColor
                var hsba: (hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat)
                var hue: CGFloat = 0
                var saturation: CGFloat = 0
                var brightness: CGFloat = 0
                var alpha: CGFloat = 0
                self.getHue(
                &hue,
                saturation: &saturation,
                brightness: &brightness,
                alpha: &alpha
                )
                return (hue, saturation, brightness, alpha)




                This lets you easily access not just the hue, but the satuation, brightness and alpha as well. And it doesn't require you manually provide 3 seperate rgb components. You can just call it on any existing NSColor instance. You might initialize one using rgb components, but you could also use any other other NSColor instance, such as one returned by another API, or one of the static value like NSColor.blue).



                print(NSColor.green.hsba.hue)





                share|improve this answer






















                  up vote
                  0
                  down vote










                  up vote
                  0
                  down vote









                  I would implement this a bit differently:



                  import AppKit

                  extension NSColor
                  var hsba: (hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat)
                  var hue: CGFloat = 0
                  var saturation: CGFloat = 0
                  var brightness: CGFloat = 0
                  var alpha: CGFloat = 0
                  self.getHue(
                  &hue,
                  saturation: &saturation,
                  brightness: &brightness,
                  alpha: &alpha
                  )
                  return (hue, saturation, brightness, alpha)




                  This lets you easily access not just the hue, but the satuation, brightness and alpha as well. And it doesn't require you manually provide 3 seperate rgb components. You can just call it on any existing NSColor instance. You might initialize one using rgb components, but you could also use any other other NSColor instance, such as one returned by another API, or one of the static value like NSColor.blue).



                  print(NSColor.green.hsba.hue)





                  share|improve this answer












                  I would implement this a bit differently:



                  import AppKit

                  extension NSColor
                  var hsba: (hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat)
                  var hue: CGFloat = 0
                  var saturation: CGFloat = 0
                  var brightness: CGFloat = 0
                  var alpha: CGFloat = 0
                  self.getHue(
                  &hue,
                  saturation: &saturation,
                  brightness: &brightness,
                  alpha: &alpha
                  )
                  return (hue, saturation, brightness, alpha)




                  This lets you easily access not just the hue, but the satuation, brightness and alpha as well. And it doesn't require you manually provide 3 seperate rgb components. You can just call it on any existing NSColor instance. You might initialize one using rgb components, but you could also use any other other NSColor instance, such as one returned by another API, or one of the static value like NSColor.blue).



                  print(NSColor.green.hsba.hue)






                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 11 at 5:58









                  Alexander

                  30.4k44575




                  30.4k44575



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.





                      Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                      Please pay close attention to the following guidance:


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53245926%2fconverting-rgb-to-hsv-in-macos%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      這個網誌中的熱門文章

                      Barbados

                      How to read a connectionString WITH PROVIDER in .NET Core?

                      Node.js Script on GitHub Pages or Amazon S3