|
180 | 180 |
|
181 | 181 | # New multiplication operators |
182 | 182 | (⋅)(x::AbstractRGB, y::AbstractRGB) = (T = acctype(eltype(x), eltype(y)); T(red(x))*T(red(y)) + T(green(x))*T(green(y)) + T(blue(x))*T(blue(y)))/3 |
| 183 | +(⋅)(x::Union{AbstractRGB,AbstractGray}, y::Union{AbstractRGB,AbstractGray}) = ⋅(promote(x, y)...) |
183 | 184 | (⊙)(x::C, y::C) where C<:AbstractRGB = base_color_type(C)(red(x)*red(y), green(x)*green(y), blue(x)*blue(y)) |
184 | | -(⊙)(x::AbstractRGB, y::AbstractRGB) = ⊙(promote(x, y)...) |
| 185 | +(⊙)(x::Union{AbstractRGB,AbstractGray}, y::Union{AbstractRGB,AbstractGray}) = ⊙(promote(x, y)...) |
185 | 186 | # ⊗ defined below |
186 | 187 |
|
187 | 188 | isfinite(c::Colorant{T}) where {T<:Normed} = true |
@@ -362,6 +363,7 @@ function ⊗(a::AbstractRGB, b::AbstractRGB) |
362 | 363 | agbr, abbg, arbb, abbr, arbg, agbb = ag*br, ab*bg, ar*bb, ab*br, ar*bg, ag*bb |
363 | 364 | return RGBRGB(ar*br, agbr, abbr, arbg, ag*bg, abbg, arbb, agbb, ab*bb) |
364 | 365 | end |
| 366 | +⊗(a::Union{AbstractRGB,AbstractGray}, b::Union{AbstractRGB,AbstractGray}) = ⊗(promote(a, b)...) |
365 | 367 |
|
366 | 368 | """ |
367 | 369 | varmult(op, itr; corrected::Bool=true, mean=Statistics.mean(itr), dims=:) |
|
0 commit comments