Method: PSD::Compose#darken
- Defined in:
- lib/psd/renderer/compose.rb
#darken(fg, bg, opacity) ⇒ Object
Subtractive blend modes
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/psd/renderer/compose.rb', line 31 def darken(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 |