OSDN Git Service

dmg作成バージョンの取得方法の修正
[charactermanaj/CharacterManaJ.git] / src / charactermanaj / graphics / filters / ContrastTableFactory.java
1 package charactermanaj.graphics.filters;\r
2 \r
3 /**\r
4  * コントラストの計算済みテーブルを用意する.<br>\r
5  * 最大で255x3あれば足りる.<br>\r
6  * \r
7  * @author seraphy\r
8  * \r
9  */\r
10 public class ContrastTableFactory implements TableFactory {\r
11 \r
12         private float contrast = 1.f;\r
13         \r
14         public ContrastTableFactory() {\r
15                 this(1.f);\r
16         }\r
17         \r
18         public ContrastTableFactory(float contrast) {\r
19                 this.contrast = contrast;\r
20         }\r
21         \r
22         public int[][] createTable() {\r
23                 int[] table = new int[256];\r
24                 for (int level = 0; level <= 255; level++) {\r
25                         float f = level / 255.f;\r
26                         f = getContrast(f);\r
27                         int c = (int)(f * 256);\r
28                         if (c > 255) {\r
29                                 c = 255;\r
30                         } else if (c < 0) {\r
31                                 c = 0;\r
32                         }\r
33                         table[level] = c;\r
34                 }\r
35 \r
36                 int[][] tables = new int[3][];\r
37                 for (int idx = 0; idx < 3; idx++) {\r
38                         tables[idx] = table;\r
39                 }\r
40                 return tables;\r
41         }\r
42         \r
43         protected float getContrast(float f) {\r
44                 return (f - 0.5f) * contrast + 0.5f;\r
45         }\r
46         \r
47 }\r