initial commit
[imagesqueeze.git] / src / main / java / eu / svjatoslav / imagesqueeze / codec / Color.java
1 package eu.svjatoslav.imagesqueeze.codec;
2
3 /**
4  * Helper class to convert between RGB and YUV
5  */
6 public class Color {
7
8         int r;
9         int g;
10         int b;
11
12         int y;
13         int u;
14         int v;
15
16         public void YUV2RGB(){
17
18                 b = (int)(y + 1.4075 * (v - 128));
19                 g = (int)(y - 0.3455 * (u - 128) - (0.7169 * (v - 128)));
20                 r = (int)(y + 1.7790 * (u - 128));
21
22                 if (r < 0) r = 0;
23                 if (g < 0) g = 0;
24                 if (b < 0) b = 0;
25
26                 if (r > 255) r = 255;
27                 if (g > 255) g = 255;
28                 if (b > 255) b = 255;
29
30         }
31
32         public void RGB2YUV(){
33
34                 y = (int)(r * 0.299000 + g * 0.587000 + b * 0.114000);
35                 u = (int)(r * -0.168736 + g * -0.331264 + b * 0.500000 + 128);
36                 v = (int)(r *  0.500000 + g * -0.418688 + b * -0.081312 + 128);
37
38                 if (y < 0) y = 0;
39                 if (u < 0) u = 0;
40                 if (v < 0) v = 0;
41
42                 if (y > 255) y = 255;
43                 if (u > 255) u = 255;
44                 if (v > 255) v = 255;
45                 
46         }
47         
48 };
49