Method: PSD::Compose#lighten
- Defined in:
- lib/psd/renderer/compose.rb
#lighten(fg, bg, opacity) ⇒ Object
Additive blend modes
94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/psd/renderer/compose.rb', line 94 def lighten(fg, bg, opacity) return apply_opacity(fg, opacity) if fully_transparent?(bg) return bg if fully_transparent?(fg) mix_alpha, dst_alpha = calculate_alphas(fg, bg, opacity) new_r = r(fg) >= r(bg) ? blend_channel(r(bg), r(fg), mix_alpha) : r(bg) new_g = g(fg) >= g(bg) ? blend_channel(g(bg), g(fg), mix_alpha) : g(bg) new_b = b(fg) >= b(bg) ? blend_channel(b(bg), b(fg), mix_alpha) : b(bg) rgba(new_r, new_g, new_b, dst_alpha) end |