swift之顏色 16進製制顏色轉換成RGB顏色

2021-08-15 10:44:56 字數 2723 閱讀 1035

//16進製制字串轉成uicolor

import uikit

class lybcolorextention: nsobject

//方法一:使用:

"#eeeeee".touicolor()

extension string

if cstring.hasprefix("#")

//字元chuan擷取

var range = nsrange()

range.location = 0

range.length = 2

let rstring = (cstring as nsstring).substring(with: range)

range.location = 2

let gstring = (cstring as nsstring).substring(with: range)

range.location = 4

let bstring = (cstring as nsstring).substring(with: range)

//儲存轉換後的數值

var r:uint32 = 0,g:uint32 = 0,b:uint32 = 0

//進行轉換

scanner(string: rstring).scanhexint32(&r)

scanner(string: gstring).scanhexint32(&g)

scanner(string: bstring).scanhexint32(&b)

//根據顏色值建立uicolor

return uicolor(red: cgfloat(r)/255.0, green: cgfloat(g)/255.0, blue: cgfloat(b)/255.0, alpha: 1.0) }

//方法二;"".color

var color: uicolor

let a, r, g, b: int32

switch hex.count

return uicolor(red: cgfloat(r) / 255.0, green: cgfloat(g) / 255.0, blue: cgfloat(b) / 255.0, alpha: cgfloat(a) / 255.0)

} else

return uicolor(red: cgfloat(r) / 255.0, green: cgfloat(g) / 255.0, blue: cgfloat(b) / 255.0, alpha: cgfloat(a) / 255.0)}}

}uicolor.init(hexstring: "#88eeee")

extension uicolor

//// if cstring.hasprefix("#")

//// //字元chuan擷取

// var range = nsrange()

// range.location = 0

// range.length = 2

//// let rstring = (cstring as nsstring).substring(with: range)

//// range.location = 2

// let gstring = (cstring as nsstring).substring(with: range)

//// range.location = 4

// let bstring = (cstring as nsstring).substring(with: range)

//// //儲存轉換後的數值

// var r:uint32 = 0,g:uint32 = 0,b:uint32 = 0

// //進行轉換

// scanner(string: rstring).scanhexint32(&r)

// scanner(string: gstring).scanhexint32(&g)

// scanner(string: bstring).scanhexint32(&b)

// //根據顏色值建立uicolor

// self.init(red: cgfloat(r)/255.0, green: cgfloat(g)/255.0, blue: cgfloat(b)/255.0, alpha: 1.0)

// }

//方法四

class func hexcolor(hex:string) -> uicolor

if ((cstring.count) != 6)

var rgbvalue:uint64 = 0

scanner(string: cstring).scanhexint64(&rgbvalue)

return uicolor(

red: cgfloat((rgbvalue & 0xff0000) >> 16) / 255.0,

green: cgfloat((rgbvalue & 0x00ff00) >> 8) / 255.0,

blue: cgfloat(rgbvalue & 0x0000ff) / 255.0,

alpha: cgfloat(1.0))}

}

16進製制顏色

r g b 紅 綠 藍 0 0 0 偏向色系 顏色寫法一般有 background red background ff0000 background rgb 255,0,0 background red 是直接用對應的英語單詞 background ff0000 是用16進製制來表達顏色 也可以寫成...

16進製制顏色碼

對於上面提到的第一種顏色,即發光體的顏色模式,又稱為 加色模式 三原色 是 紅 綠 藍 三種顏色。加色模式又稱為 rgb模式 而對於印刷品這樣的顏色模式,又稱為 減色模式 它的三原色是 青 洋紅 黃 三種顏色。減色模式又稱為 cmyk 模式。例如,在網頁上要指定一種顏色,就要使用rgb模式來確定,方...

使用16進製制顏色值

通常情況下我們是直接使用類似於 ee1289這樣的 來直接表示rgb顏色的 uicolor colorwithred 0xee 255.0 green 0x12 255.0 blue 0x89 255.0 alpha 1 這樣呼叫真是太繁瑣了,所以封裝了乙個小方法來直接呼叫 獲取顏色 uicolor...