しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

iOSで乗算した色を取得する

色の乗算とは

Photoshopで出てくる概念で、色と色を重ね方の一つです。
赤と赤の乗算はより濃い赤になり、青と青ならより濃い青になります。

Photoshop Manual - [ 乗算 ] とは - by StudioGraphics

Swiftで乗算した色の取得する

下のように取得します。
乗算とはその名の通りRGBそれぞれを掛けあわせたものなので、r・g・bを取得して掛け算した値を使って作った色が乗算後の色になります。

let baseColor1 = UIColor()
var r1: CGFloat = 1.0, g1: CGFloat = 1.0, b1: CGFloat = 1.0, a1: CGFloat = 1.0
baseColor1.getRed(&r1, green: &g1, blue: &b1, alpha: &a1)

let baseColor2 = UIColor()
var r2: CGFloat = 1.0, g2: CGFloat = 1.0, b2: CGFloat = 1.0, a2: CGFloat = 1.0
baseColor2.getRed(&r2, green: &g2, blue: &b2, alpha: &a2)

let color = UIColor(red: r1 * r2, green: g1 * g2, blue: b1 * b2, alpha: 1.0)