-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
move storage type conversion trait from ImageCore to Colors #475
Comments
I have no objection to "defining" them in Colors or ColorTypes, but I am not comfortable exporting them. 😕 I can fully understand why you would prefer to have them defined in Colors (or ColorTypes), but I don't see what the trouble is with having them in ImageCore. The same goes for |
Also, as you know, there is the inconsistency problem with |
I'm okay with this since it's mainly the package developer that needs to take care of the storage type. My main consideration when proposing this move is that I want to give better support for them on broader color types. Currently, julia> n0f8(RGB)
RGB{N0f8}
julia> n0f8(RGB{Float32})
RGB{N0f8}
julia> n0f8(RGB24)
ERROR: TypeError: in Type{...} expression, expected UnionAll, got Type{RGB24}
Stacktrace:
[1] n0f8(#unused#::Type{RGB24})
@ ImageCore ~/.julia/packages/ImageCore/iXG0W/src/convert_reinterpret.jl:82
[2] top-level scope
@ REPL[21]:1 This need arises when I tried to convert all colorant images to N0f8/UInt8 byte sequences: canonical_colorant_type(::Type{CT}) where CT<:Colorant = n0f8(CT)
canonical_colorant_type(::Type{T}) where T<:Real = Gray{N0f8}
The only reason that I feel it better to live in Colors is that they are pixel-level operations. 😄 |
Even if we do the migration, I don't see any reason not to fix |
I think it's straightforward to define However, I think the following should be solved within ColorTypes. julia> convert(Colorant{Float32}, RGB24(1))
ERROR: nonparametric type RGB24 has ambiguous destination Colorant{Float32, N} where N (Of course, this is a known issue: |
Makes sense to me; either move or not are good. We can keep this issue open until we decide the 1.0 status. |
It looks like the most appropriate place for these traits is here:
https://github.com/JuliaImages/ImageCore.jl/blob/4fb132187d68054be7413ec229071115c14f72bd/src/convert_reinterpret.jl#L61-L107
The text was updated successfully, but these errors were encountered: