zoukankan      html  css  js  c++  java
  • [Swift]获取UIColor的反色(补色)

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址:https://www.cnblogs.com/strengthen/p/11112224.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    反色(补色):

    反色又叫补色。例如黑与白、红与青等。

    反色(补色)是与原色叠加可以变为白色的颜色,即用白色(RGB:255,255,255)减去原色的颜色。比如说红色(RGB:255,0,0)的反色是青色(0,255,255)。

    反色(补色)是指任何两种以适当比例混合后而呈现白色或灰色的颜色,即这两种颜色互为补色。总是成对出现。色调环(颜色立体的圆周)上位于对侧的任何两种颜色互为补色。如黄与蓝、青与红、品红和绿均为互补色。一种特定的色彩总是只有一种补色。 

    算法描述:

    电脑中对颜色的表示通常是 #3252A0 这样的一串六位 十六进制数,前面两位表示红,中间两位表示绿,最后两位表示蓝。

    使用FF 减去相应的值即可得到颜色的反色:

    红 = FF-32

    绿 = FF-52

    蓝 = FF-A0

    把算出来的结果再连接起来就得到了结果。

    对 UIColor 进行扩展:

     1 import UIKit
     2  
     3 extension UIColor {
     4     //获取反色(补色)
     5     func invertColor() -> UIColor {
     6         var r:CGFloat = 0, g:CGFloat = 0, b:CGFloat = 0
     7         self.getRed(&r, green: &g, blue: &b, alpha: nil)
     8         return UIColor(red:1.0-r, green: 1.0-g, blue: 1.0-b, alpha: 1)
     9     }
    10 }
  • 相关阅读:
    Kth Smallest Element in a BST
    Bitwise AND of Numbers Range
    Happy Number
    Summary Ranges
    linux设置MySQL开机自动启动
    基本PSO算法实现(Java)
    Invert Binary Tree
    Rectangle Area
    Contains Duplicate II
    Contains Duplicate
  • 原文地址:https://www.cnblogs.com/strengthen/p/11112224.html
Copyright © 2011-2022 走看看