You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Benedikt Ritter (JIRA)" <ji...@apache.org> on 2015/01/10 11:18:34 UTC
[jira] [Commented] (IMAGING-157) Add method to color classes to
convert colors to other color spaces
[ https://issues.apache.org/jira/browse/IMAGING-157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14272431#comment-14272431 ]
Benedikt Ritter commented on IMAGING-157:
-----------------------------------------
What is {{Color.Hsl}}? Is it an enum? That would duplicate the class hierarchy wie already have (every class would need an equivalent enum value). So I'd vote for the second solution. The problem here is, that we need to restrict the range of allowed classes, hence we need a common interface or class, that all color classes share. We can not use an interface, because it is not possible to restrict clients from implementing it, so we'll need a base class. I propose this:
{code:java}
public abstract class Color {
Color() {
// package private constructor so that only we can create sub classes
}
public T convertTo(Class<T extends Color> targetClass) {
// implement logic here?
// make this abstract and implement logic in individual color classes?
// delegate to ColorConversions?
}
}
{code}
> Add method to color classes to convert colors to other color spaces
> -------------------------------------------------------------------
>
> Key: IMAGING-157
> URL: https://issues.apache.org/jira/browse/IMAGING-157
> Project: Commons Imaging
> Issue Type: Improvement
> Reporter: Stephan Köninger
> Fix For: Discussion
>
>
> Instead of having a static util class it would be nice to have a method available to all Color types which allows one to convert a color to another color space. See following example for clearance:
> {code:java}
> ColorCmyk cymk = new ColorCmyk(100, 0, 100, 0);
> ColorHsl colorHsl = cymk.convertTo(Color.Hsl);
> // or
> ColorHsl colorHsl = cymk.convertTo(ColorHsl.class);
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)