Closed NicholasWMRitchie closed 1 week ago
Changing the type of the field colors
in ManualDiscreteKey
from Vector{Colorant}
to Vector{<:Colorant}
resolves the problem. However, this brings up two questions:
Hopefully, this pull in ImageCore will fix the problem.
@NicholasWMRitchie Great that you have found the source of the issue! This issue (also #1454) does seem to relate to another package unnecessarily overloading Base.convert
, since things work as expected in Gadfly, as in your post.
It's back!!! It seems that recent changes to ImageCore.jl has broken ManualDiscreteKey (manual_discrete_key(....) and manual_color_key(...)) again. The key line is convert(::Type{Array{ColorTypes.Color,N} where N}, ::Array{ColorTypes.Color,1})@deprecations.jl:62
which is in ImageCore.jl and seems to be one of these dreaded invalidations.
Failed to show value:
MethodError: no method matching ColorTypes.Color(::ColorTypes.RGB{FixedPointNumbers.Normed{UInt8,8}})
_broadcast_getindex_evalf@broadcast.jl:648[inlined]
_broadcast_getindex@broadcast.jl:621[inlined]
getindex@broadcast.jl:575[inlined]
copy@broadcast.jl:876[inlined]
materialize@broadcast.jl:837[inlined]
convert(::Type{Array{ColorTypes.Color,N} where N}, ::Array{ColorTypes.Color,1})@deprecations.jl:62
cat_aes_var!(::IndirectArrays.IndirectArray{ColorTypes.Color,1,Array{Int64,1},Array{ColorTypes.Color,1}}, ::IndirectArrays.IndirectArray{ColorTypes.Color,1,Array{Int64,1},Array{ColorTypes.Color,1}})@aesthetics.jl:300
concat(::Gadfly.Aesthetics, ::Vararg{Gadfly.Aesthetics,N} where N)@aesthetics.jl:250
render_prepare(::Gadfly.Plot)@Gadfly.jl:685
render(::Gadfly.Plot)@Gadfly.jl:740
draw@Gadfly.jl:847[inlined]
show(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::MIME{Symbol("text/html")}, ::Gadfly.Plot)@Gadfly.jl:937
#show_richest#18(::Bool, ::typeof(Main.PlutoRunner.show_richest), ::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::Any)@PlutoRunner.jl:382
show_richest(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::Any)@PlutoRunner.jl:330
#sprint_withreturned#17(::IOContext{Base.PipeEndpoint}, ::Int64, ::typeof(Main.PlutoRunner.sprint_withreturned), ::Function, ::Gadfly.Plot)@PlutoRunner.jl:302
format_output(::Any)@PlutoRunner.jl:242
formatted_result_of(::Base.UUID, ::Bool)@PlutoRunner.jl:53
top-level scope@none:1
I've also submitted this as https://github.com/JuliaImages/ImageCore.jl/issues/150
The problem seems to be resolved.
Gadfly fails when manual_color_key(...) is used when ImageCore is loaded
The problem is the line in ImageCore/convert_reinterpret.jl line 80-83
This leads to this error:
Is this a Gadfly bug or an ImageCore bug? Or just an unfortunate interaction.