Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.mapcontext / org.gvsig.fmap.mapcontext.impl / src / main / java / org / gvsig / fmap / raster / lib / legend / impl / ColorManager.java @ 44831

History | View | Annotate | Download (4.14 KB)

1
package org.gvsig.raster.lib.legend.impl;
2

    
3

    
4
/**
5
 * Coversi?n de de colores y valores de pixel aplicando distintos m?todos.
6
 *
7
 * 31/10/2007
8
 * @author Nacho Brodin nachobrodin@gmail.com
9
 */
10
public interface ColorManager {
11

    
12
    /**
13
     * Conversi?n de RGB a HSL (Hue, Saturation, Lightness)
14
     * @param rojo Banda del rojo del pixel de entrada
15
     * @param verde Banda del verde del pixel de entrada
16
     * @param azul Banda del azul del pixel de entrada
17
     * @return array de 3 valores con los datos HSL correspondiente al pixel de entrada.
18
     */
19
    public double[] RGBtoHSL(int rojo, int verde, int azul);
20

    
21
    /**
22
     * Conversi?n de RGB a HSV (Hue, Saturation, Value). El valor de H es el mismo que en
23
     * HSL pero difiere en el calculo de la S y la V.
24
     * @param rojo Banda del rojo del pixel de entrada
25
     * @param verde Banda del verde del pixel de entrada
26
     * @param azul Banda del azul del pixel de entrada
27
     * @return array de 3 valores con los datos HSL correspondiente al pixel de entrada.
28
     */
29
    public double[] RGBtoHSV(int rojo, int verde, int azul);
30

    
31
    /**
32
     * Conversi?n de HSL a RGB
33
     * @param h Banda de matiz del pixel de entrada
34
     * @param s Banda de saturaci?n del pixel de entrada
35
     * @param l Banda de brillo del pixel de entrada
36
     * @return array de 3 valores con los datos RGB correspondiente al pixel de entrada.
37
     */
38
    public int[] HSLtoRGB(int h, int s, int l);
39

    
40

    
41
    /**
42
     * Conversi?n de HSL a RGB
43
     * @param h Banda de matiz del pixel de entrada. Valor entre 0 y 1.
44
     * @param s Banda de saturaci?n del pixel de entrada. Valor entre 0 y 1.
45
     * @param l Banda de brillo del pixel de entrada. Valor entre 0 y 1.
46
     * @return array de 3 valores con los datos RGB correspondiente al pixel de entrada.
47
     */
48
    public int[] HSLtoRGB(double h, double s, double l);
49

    
50
    /**
51
     * Conversi?n de RGB a CMYK (Cyan, Magenta, Yellow, Key).
52
     * @param red Banda del rojo del pixel de entrada
53
     * @param green Banda del verde del pixel de entrada
54
     * @param blue Banda del azul del pixel de entrada
55
     * @param kScale valor entre 0 y 1
56
     * @return array de 4 valores con los datos CMYK correspondiente al pixel de entrada.
57
     */
58
    public double[] RGBtoCMYK(int red, int green, int blue, double kScale);
59

    
60
    /**
61
     * Conversi?n de CMYK (Cyan, Magenta, Yellow, Key) a RGB (red, green, blue).
62
     * @param red Banda del rojo del pixel de entrada
63
     * @param green Banda del verde del pixel de entrada
64
     * @param blue Banda del azul del pixel de entrada
65
     * @param kScale valor entre 0 y 1
66
     * @return array de 4 valores con los datos CMYK correspondiente al pixel de entrada.
67
     */
68
    public double[] CMYKtoRGB(double cyan, double magenta, double yellow, double key);
69

    
70
    /**
71
     * Obtiene la luminosidad del RGB pasado por par?metro
72
     * @param red Banda del rojo del pixel de entrada
73
     * @param green Banda del verde del pixel de entrada
74
     * @param blue Banda del azul del pixel de entrada
75
     * @return double que representa la luminosidad. Para tenerlo en un rango de 255 hay que aplicar (lum * 255. + 0.5);
76
     */
77
    public double getLuminosity(int red, int green, int blue);
78

    
79
    /**
80
     * Descompone un entero que representa un ARGB en sus 4 valores byte Obtiene
81
     * un array de 4 elementos donde el elemento 0 es el Rojo, el 1 es el verde,
82
     * el 2 el azul y el 3 el alpha.
83
     * @param rgb Entero con el valor ARGB a descomponer;
84
     * @return Array de cuatro elementos
85
     */
86
    public byte[] getARGBFromIntToByteArray(int rgb);
87

    
88
    /**
89
     * Descompone un entero que representa un ARGB en sus 4 valores byte Obtiene
90
     * un array de 4 elementos donde el elemento 0 es el Rojo, el 1 es el verde,
91
     * el 2 el azul y el 3 el alpha.
92
     * @param rgb Entero con el valor ARGB a descomponer;
93
     * @return
94
     */
95
    public int[] getARGBFromIntToIntArray(int rgb);
96

    
97
    /**
98
     * Obtiene un entero con los valores ARGB pasados por par?metro
99
     * @param a Valor de alpha
100
     * @param r Valor del rojo
101
     * @param g Valor del verde
102
     * @param b Valor del azul
103
     * @return entero con la mezcla de valores
104
     */
105
    public int getIntFromARGB(int a, int r, int g, int b);
106

    
107
}