• R/O
  • SSH
  • HTTPS

charactermanaj: コミット


コミットメタ情報

リビジョン43 (tree)
日時2013-03-03 05:33:56
作者seraphy

ログメッセージ

・ 内部的に、HSB(色相・彩度・明度)による色変更に加えて、HSY(色相・彩度・輝度)による変更をサポートするようにカラーモデルを切り替え可能に対応した。(設定画面、色ダイアログは未対応)

変更サマリ

差分

--- trunk/src/charactermanaj/graphics/colormodel/ColorModel.java (nonexistent)
+++ trunk/src/charactermanaj/graphics/colormodel/ColorModel.java (revision 43)
@@ -0,0 +1,31 @@
1+package charactermanaj.graphics.colormodel;
2+
3+/**
4+ * カラーモデル.
5+ *
6+ * @author seraphy
7+ */
8+public interface ColorModel {
9+
10+ /**
11+ * RGBからHSVに変換する.
12+ *
13+ * @param r
14+ * @param g
15+ * @param b
16+ * @param hsvVals
17+ * @return
18+ */
19+ float[] RGBtoHSV(int r, int g, int b, float[] hsvVals);
20+
21+ /**
22+ * HSVからRGBに変換する.
23+ *
24+ * @param hue
25+ * @param sat
26+ * @param lum
27+ * @return
28+ */
29+ int HSVtoRGB(float hue, float sat, float lum);
30+
31+}
--- trunk/src/charactermanaj/graphics/colormodel/ColorModels.java (nonexistent)
+++ trunk/src/charactermanaj/graphics/colormodel/ColorModels.java (revision 43)
@@ -0,0 +1,22 @@
1+package charactermanaj.graphics.colormodel;
2+
3+public enum ColorModels implements ColorModel {
4+
5+ HSB(new HSBColorModel()),
6+
7+ HSY(new HSYColorModel());
8+
9+ private final ColorModel colorModel;
10+
11+ ColorModels(ColorModel colorModel) {
12+ this.colorModel = colorModel;
13+ }
14+
15+ public int HSVtoRGB(float hue, float sat, float lum) {
16+ return colorModel.HSVtoRGB(hue, sat, lum);
17+ }
18+
19+ public float[] RGBtoHSV(int r, int g, int b, float[] hsvVals) {
20+ return colorModel.RGBtoHSV(r, g, b, hsvVals);
21+ }
22+}
--- trunk/src/charactermanaj/graphics/colormodel/HSYColorModel.java (nonexistent)
+++ trunk/src/charactermanaj/graphics/colormodel/HSYColorModel.java (revision 43)
@@ -0,0 +1,184 @@
1+package charactermanaj.graphics.colormodel;
2+
3+/**
4+ * HSYカラーモデルの計算.<br>
5+ * "gununuの日記"さんのところのC++計算ルーチンをJava用に書き直したもの.<br>
6+ *
7+ * @author seraphy
8+ * @see http://d.hatena.ne.jp/gununu/20090721/1248171222
9+ */
10+public class HSYColorModel implements ColorModel {
11+
12+ /**
13+ * 輝度計算用の係数R
14+ */
15+ private static final float IR = 0.298912f;
16+
17+ /**
18+ * 輝度計算用の係数G
19+ */
20+ private static final float IG = 0.586611f;
21+
22+ /**
23+ * 輝度計算用の係数B
24+ */
25+ private static final float IB = 0.114478f;
26+
27+ /**
28+ * RGBから輝度を求める.
29+ *
30+ * @param r
31+ * @param g
32+ * @param b
33+ * @return 輝度
34+ */
35+ public static int getGrayscale(int r, int g, int b) {
36+ return (int) (IR * r + IG * g + IB * b) & 0xff;
37+ }
38+
39+ /**
40+ * RGBからHSYに変換する.<br>
41+ *
42+ * @param rr
43+ * 0-255範囲のR
44+ * @param gg
45+ * 0-255範囲のG
46+ * @param bb
47+ * 0-255範囲のB
48+ * @param hsyVals
49+ * H色相, S彩度, Y輝度を0-1の実数表現した配列(書き込み先)
50+ * @return 引数と同じhsyvalsを返す.
51+ */
52+ public float[] RGBtoHSV(int r, int g, int b, float[] hsyVals) {
53+ if (hsyVals == null || hsyVals.length < 3) {
54+ throw new IllegalArgumentException();
55+ }
56+
57+ int max = Math.max(Math.max(r, g), b);
58+ int min = Math.min(Math.min(r, g), b);
59+ float saturation = (max - min) / 255.f;
60+
61+ float rr = r / 255.f;
62+ float gg = g / 255.f;
63+ float bb = b / 255.f;
64+ float lum = (IR * rr + IG * gg + IB * bb);
65+ if (lum > 1.f) {
66+ lum = 1.f;
67+ }
68+
69+ float hue;
70+ if (saturation == 0) {
71+ hue = 0;
72+
73+ } else {
74+ if (max == r) {
75+ hue = (gg - bb) / saturation * 60f;
76+ } else if (max == g) {
77+ hue = (bb - rr) / saturation * 60f + 120f;
78+ } else {
79+ hue = (rr - gg) / saturation * 60f + 240f;
80+ }
81+ if (hue < 0) {
82+ hue += 360f;
83+ }
84+ hue /= 360f;
85+ }
86+
87+ hsyVals[0] = hue;
88+ hsyVals[1] = saturation;
89+ hsyVals[2] = lum;
90+ return hsyVals;
91+ }
92+
93+ /**
94+ * HSYからRGBに変換する.<Br>
95+ *
96+ * @param hue
97+ * 0-1範囲の色相
98+ * @param sat
99+ * 0-1範囲の彩度
100+ * @param lum
101+ * 0-1範囲の輝度
102+ * @return RGB値
103+ * @see http://d.hatena.ne.jp/gununu/20090721/1248171222
104+ */
105+ public int HSVtoRGB(float hue, float sat, float lum) {
106+ hue = (hue - (float) Math.floor(hue));
107+ if (sat < 0) {
108+ sat = 0f;
109+ } else if (sat > 1f) {
110+ sat = 1f;
111+ }
112+ if (lum < 0) {
113+ lum = 0f;
114+ } else if (lum > 1f) {
115+ lum = 1f;
116+ }
117+
118+ float r, g, b;
119+ if (hue <= 1 / 6.0f) {
120+ float h = hue * 6;
121+ r = (1 - IR - IG * h);
122+ g = (-IR + (1 - IG) * h);
123+ b = (-IR - IG * h);
124+
125+ } else if (hue <= 3 / 6.0f) {
126+ float h = (hue - 1 / 3.0f) * 6;
127+ if (hue > 2 / 6.0f) {
128+ r = (-IG - IB * h);
129+ g = (1 - IG - IB * h);
130+ b = (-IG + (1 - IB) * h);
131+
132+ } else {
133+ r = (-IG + (IR - 1) * h);
134+ g = (1 - IG + IR * h);
135+ b = (-IG + IR * h);
136+ }
137+
138+ } else if (hue <= 5 / 6.0f) {
139+ float h = (hue - 2 / 3.0f) * 6;
140+ if (hue > 4 / 6.0f) {
141+ r = (-IB + (1 - IR) * h);
142+ g = (-IB - IR * h);
143+ b = (1 - IB - IR * h);
144+
145+ } else {
146+ r = (-IB + IG * h);
147+ g = (-IB + (IG - 1) * h);
148+ b = (1 - IB + IG * h);
149+ }
150+
151+ } else {
152+ float h = (hue - 1) * 6;
153+ r = (1 - IR + IB * h);
154+ g = (-IR + IB * h);
155+ b = (-IR + (IB - 1) * h);
156+ }
157+
158+ r *= sat;
159+ g *= sat;
160+ b *= sat;
161+
162+ float ma = Math.max(r, Math.max(g, b));
163+ float mi = Math.min(r, Math.min(g, b));
164+ float x = 1;
165+ float t;
166+ if (ma + lum > 1f) {
167+ t = (1f - lum) / ma;
168+ x = t;
169+ }
170+
171+ if (mi + lum < 0) {
172+ t = lum / (-mi);
173+ if (t < x) {
174+ x = t;
175+ }
176+ }
177+
178+ int red = (int) ((lum + r * x) * 255) & 0xff;
179+ int green = (int) ((lum + g * x) * 255) & 0xff;
180+ int blue = (int) ((lum + b * x) * 255) & 0xff;
181+
182+ return 0xff000000 | red << 16 | green << 8 | blue;
183+ }
184+}
--- trunk/src/charactermanaj/graphics/colormodel/HSBColorModel.java (nonexistent)
+++ trunk/src/charactermanaj/graphics/colormodel/HSBColorModel.java (revision 43)
@@ -0,0 +1,23 @@
1+package charactermanaj.graphics.colormodel;
2+
3+import java.awt.Color;
4+
5+/*
6+ * Java標準のHSBカラーモデル.<br>
7+ */
8+public class HSBColorModel implements ColorModel {
9+
10+ /**
11+ * RGBからHSBに変換する.
12+ */
13+ public float[] RGBtoHSV(int r, int g, int b, float[] hsvVals) {
14+ return Color.RGBtoHSB(r, g, b, hsvVals);
15+ }
16+
17+ /**
18+ * HSBからRGBに変換する.
19+ */
20+ public int HSVtoRGB(float hue, float saturation, float brightness) {
21+ return Color.HSBtoRGB(hue, saturation, brightness);
22+ }
23+}
--- trunk/src/charactermanaj/graphics/ColorConvertedImageLoader.java (revision 42)
+++ trunk/src/charactermanaj/graphics/ColorConvertedImageLoader.java (revision 43)
@@ -2,6 +2,7 @@
22
33 import java.io.IOException;
44
5+import charactermanaj.graphics.colormodel.ColorModel;
56 import charactermanaj.graphics.filters.ColorConvertParameter;
67 import charactermanaj.graphics.io.ImageResource;
78 import charactermanaj.graphics.io.LoadedImage;
@@ -16,11 +17,18 @@
1617 /**
1718 * 画像リソースをロードし色変換した結果のBufferedImageを返します.<br>
1819 * 返される形式はARGBに変換されています.<br>
19- * @param file 画像リソース
20- * @param colorConvParam 色変換パラメータ、nullの場合はデフォルト
20+ *
21+ * @param file
22+ * 画像リソース
23+ * @param colorConvParam
24+ * 色変換パラメータ、nullの場合はデフォルト
25+ * @param colorModel
26+ * カラーモデル
2127 * @return 画像イメージ
22- * @throws IOException 形式が不明であるか、ファィルがないか読み取りに失敗した場合
28+ * @throws IOException
29+ * 形式が不明であるか、ファィルがないか読み取りに失敗した場合
2330 */
24- LoadedImage load(ImageResource file, ColorConvertParameter colorConvParam) throws IOException;
31+ LoadedImage load(ImageResource file, ColorConvertParameter colorConvParam,
32+ ColorModel colorModel) throws IOException;
2533
2634 }
--- trunk/src/charactermanaj/graphics/ColorConvertedImageLoaderImpl.java (revision 42)
+++ trunk/src/charactermanaj/graphics/ColorConvertedImageLoaderImpl.java (revision 43)
@@ -4,6 +4,8 @@
44 import java.awt.image.RescaleOp;
55 import java.io.IOException;
66
7+import charactermanaj.graphics.colormodel.ColorModel;
8+import charactermanaj.graphics.colormodel.ColorModels;
79 import charactermanaj.graphics.filters.ColorConvertFilter;
810 import charactermanaj.graphics.filters.ColorConvertParameter;
911 import charactermanaj.graphics.filters.ContrastTableFactory;
@@ -35,12 +37,20 @@
3537 /**
3638 * 画像リソースをロードし色変換した結果のBufferedImageを返します.<br>
3739 * 返される形式はARGBに変換されています.<br>
38- * @param file 画像リソース
39- * @param colorConvParam 色変換パラメータ、nullの場合はデフォルト
40+ *
41+ * @param file
42+ * 画像リソース
43+ * @param colorConvParam
44+ * 色変換パラメータ、nullの場合はデフォルト
45+ * @param colorModel
46+ * カラーモデル、nullの場合はデフォルト
4047 * @return 画像イメージ
41- * @throws IOException 形式が不明であるか、ファィルがないか読み取りに失敗した場合
48+ * @throws IOException
49+ * 形式が不明であるか、ファィルがないか読み取りに失敗した場合
4250 */
43- public LoadedImage load(ImageResource file, ColorConvertParameter colorConvParam) throws IOException {
51+ public LoadedImage load(ImageResource file,
52+ ColorConvertParameter colorConvParam, ColorModel colorModel)
53+ throws IOException {
4454 if (file == null) {
4555 throw new IllegalArgumentException();
4656 }
@@ -48,10 +58,14 @@
4858 if (colorConvParam == null) {
4959 colorConvParam = NULL_COLORCONVPARAM;
5060 }
51-
61+ if (colorModel == null) {
62+ colorModel = ColorModels.HSB;
63+ }
64+
5265 LoadedImage loadedImage = loader.load(file);
5366 BufferedImage originalImage = loadedImage.getImage();
54- BufferedImage image = colorConvert(originalImage, colorConvParam);
67+ BufferedImage image = colorConvert(originalImage, colorConvParam,
68+ colorModel);
5569 return new LoadedImage(image, loadedImage.getLastModified());
5670 }
5771
@@ -61,7 +75,8 @@
6175 * @param param 変換パラメータ
6276 * @return 色変換後の画像
6377 */
64- protected BufferedImage colorConvert(BufferedImage img, ColorConvertParameter param) {
78+ private BufferedImage colorConvert(BufferedImage img,
79+ ColorConvertParameter param, ColorModel colorModel) {
6580
6681 float[] factors = {
6782 param.getFactorR(),
@@ -90,8 +105,9 @@
90105 };
91106
92107 float contrast = param.getContrast();
93-
108+
94109 ColorConvertFilter colorConvert_op = new ColorConvertFilter(
110+ colorModel,
95111 param.getColorReplace(),
96112 hsbs,
97113 param.getGrayLevel(),
@@ -104,5 +120,4 @@
104120
105121 return img;
106122 }
107-
108123 }
--- trunk/src/charactermanaj/graphics/filters/BackgroundColorFilter.java (revision 42)
+++ trunk/src/charactermanaj/graphics/filters/BackgroundColorFilter.java (revision 43)
@@ -2,6 +2,8 @@
22
33 import java.awt.Color;
44
5+import charactermanaj.graphics.colormodel.HSYColorModel;
6+
57 public class BackgroundColorFilter extends AbstractFilter {
68
79 /**
@@ -160,7 +162,7 @@
160162 pixcels[idx] = argb;
161163 }
162164 }
163-
165+
164166 /**
165167 * アルファを取り除き、グレスケールで表現する.<br>
166168 * RGBチャネルのうち、RBはアルファ適用されたグレースケールで、
@@ -180,8 +182,8 @@
180182 int gray_brend = 0;
181183 int gray_plain = 0;
182184 if (a != 0) {
183- // 平均化
184- gray_brend = ((r + g + b) / 3) & 0xff;
185+ // 輝度の算定(グレースケール化)
186+ gray_brend = HSYColorModel.getGrayscale(r, g, b);
185187 gray_plain = gray_brend;
186188
187189 if (a != 0xff) {
--- trunk/src/charactermanaj/graphics/filters/ColorConvertFilter.java (revision 42)
+++ trunk/src/charactermanaj/graphics/filters/ColorConvertFilter.java (revision 43)
@@ -1,6 +1,6 @@
11 package charactermanaj.graphics.filters;
22
3-import java.awt.Color;
3+import charactermanaj.graphics.colormodel.ColorModel;
44
55 /**
66 * 色変換フィルタ.<br>
@@ -22,6 +22,11 @@
2222 }
2323
2424 /**
25+ * カラーモデル
26+ */
27+ private final ColorModel colorModel;
28+
29+ /**
2530 * 色置換オブジェクト
2631 */
2732 private final ColorReplace colorReplace;
@@ -50,18 +55,31 @@
5055
5156 /**
5257 * 色変換フィルタを構築する.<br>
53- * @param colorReplace 色置換オブジェクト、不要ならばnull
54- * @param hsbOffsets HSBオフセット(3要素)、不要ならばnull
55- * @param grayLevel 淡色化率、1でそのまま、0でグレースケール化。
56- * @param gammaTableFactory ガンマ補正値ファクトリ、不要ならばnull
57- * @param contrastTableFactory コントラスト補正ファクトリ、不要ならばnull
58+ *
59+ * @param colorModel
60+ * カラーモデル
61+ * @param colorReplace
62+ * 色置換オブジェクト、不要ならばnull
63+ * @param hsbOffsets
64+ * HSBオフセット(3要素)、不要ならばnull
65+ * @param grayLevel
66+ * 淡色化率、1でそのまま、0でグレースケール化。
67+ * @param gammaTableFactory
68+ * ガンマ補正値ファクトリ、不要ならばnull
69+ * @param contrastTableFactory
70+ * コントラスト補正ファクトリ、不要ならばnull
5871 */
5972 public ColorConvertFilter(
73+ ColorModel colorModel,
6074 ColorReplace colorReplace,
61- float[] hsbOffsets,
62- float grayLevel,
75+ float[] hsbOffsets, float grayLevel,
6376 GammaTableFactory gammaTableFactory,
6477 ContrastTableFactory contrastTableFactory) {
78+ if (colorModel == null) {
79+ throw new IllegalArgumentException();
80+ }
81+ this.colorModel = colorModel;
82+
6583 if (gammaTableFactory == null) {
6684 gammaTableFactory = new GammaTableFactory(1.f);
6785 }
@@ -110,7 +128,7 @@
110128 final ColorReplace colorReplace = this.colorReplace;
111129 int[] rgbvals = new int[3];
112130 final float[] hsbOffsets = this.hsbOffsets;
113- final float[] hsbvals = new float[3];
131+ final float[] hsvvals = new float[3];
114132 final int[][] gammaTbl = this.gammaTbl;
115133 final int mx = pixcels.length;
116134 for (int i = 0; i < mx; i++) {
@@ -143,25 +161,20 @@
143161 g = ((int)(precalc[g] + negPrecalc[br])) & 0xff;
144162 b = ((int)(precalc[b] + negPrecalc[br])) & 0xff;
145163
146-// // コントラスト変換
147-// r = contrastTbl[0][r];
148-// g = contrastTbl[0][g];
149-// b = contrastTbl[0][b];
150-
151164 // 色調変換
152165 if (hsbOffsets != null) {
153- Color.RGBtoHSB(r, g, b, hsbvals);
166+ colorModel.RGBtoHSV(r, g, b, hsvvals);
154167 for (int l = 0; l < 3; l++) {
155- hsbvals[l] += hsbOffsets[l];
168+ hsvvals[l] += hsbOffsets[l];
156169 }
157170 for (int l = 1; l < 3; l++) {
158- if (hsbvals[l] < 0) {
159- hsbvals[l] = 0;
160- } else if (hsbvals[l] > 1.f) {
161- hsbvals[l] = 1.f;
171+ if (hsvvals[l] < 0) {
172+ hsvvals[l] = 0;
173+ } else if (hsvvals[l] > 1.f) {
174+ hsvvals[l] = 1.f;
162175 }
163176 }
164- int rgb = Color.HSBtoRGB(hsbvals[0], hsbvals[1], hsbvals[2]);
177+ int rgb = colorModel.HSVtoRGB(hsvvals[0], hsvvals[1], hsvvals[2]);
165178 argb = (a << 24) | (rgb & 0xffffff);
166179
167180 } else {
--- trunk/src/charactermanaj/graphics/ImageBuilder.java (revision 42)
+++ trunk/src/charactermanaj/graphics/ImageBuilder.java (revision 43)
@@ -18,6 +18,8 @@
1818 import java.util.logging.Level;
1919 import java.util.logging.Logger;
2020
21+import charactermanaj.graphics.colormodel.ColorModel;
22+import charactermanaj.graphics.colormodel.ColorModels;
2123 import charactermanaj.graphics.filters.ColorConvertParameter;
2224 import charactermanaj.graphics.io.ImageResource;
2325 import charactermanaj.graphics.io.LoadedImage;
@@ -439,7 +441,23 @@
439441 imageLoader.unlockImages();
440442 }
441443
442- LoadedImage loadedImage = imageLoader.load(imageFile, colorConvParam);
444+ // カラーモデル
445+ Layer layer = partsInfo.getLayer();
446+ String colorModelName = layer.getColorModelName();
447+ ColorModel colorModel = null;
448+ if (colorModelName != null) {
449+ try {
450+ colorModel = ColorModels
451+ .valueOf(colorModelName);
452+ } catch (RuntimeException ex) {
453+ logger.log(Level.WARNING,
454+ "unknown colormodel: " + colorModelName);
455+ colorModel = null;
456+ }
457+ }
458+
459+ LoadedImage loadedImage = imageLoader.load(imageFile,
460+ colorConvParam, colorModel);
443461
444462 // イメージ構築に使用した各パーツの結果を格納する.
445463 imageBuildInfo.addUsedPartsInfo(partsInfo, loadedImage);
--- trunk/src/charactermanaj/graphics/ColorConvertedImageCachedLoader.java (revision 42)
+++ trunk/src/charactermanaj/graphics/ColorConvertedImageCachedLoader.java (revision 43)
@@ -2,6 +2,7 @@
22
33 import java.io.IOException;
44
5+import charactermanaj.graphics.colormodel.ColorModel;
56 import charactermanaj.graphics.filters.ColorConvertParameter;
67 import charactermanaj.graphics.io.ImageCache;
78 import charactermanaj.graphics.io.ImageCachedLoader;
@@ -30,7 +31,8 @@
3031
3132 @Override
3233 public LoadedImage load(ImageResource file,
33- ColorConvertParameter colorConvParam) throws IOException {
34+ ColorConvertParameter colorConvParam, ColorModel colorModel)
35+ throws IOException {
3436 if (file == null) {
3537 throw new IllegalArgumentException();
3638 }
@@ -46,7 +48,7 @@
4648 synchronized (caches) {
4749 LoadedImage loadedImage = caches.get(key);
4850 if (loadedImage == null) {
49- loadedImage = super.load(file, param);
51+ loadedImage = super.load(file, param, colorModel);
5052 caches.set(key, loadedImage);
5153 }
5254 return loadedImage;
--- trunk/src/charactermanaj/model/Layer.java (revision 42)
+++ trunk/src/charactermanaj/model/Layer.java (revision 43)
@@ -45,12 +45,24 @@
4545 private final String dir;
4646
4747 /**
48+ * カラーモデル名
49+ */
50+ private final String colorModelName;
51+
52+ /**
4853 * レイヤー情報を構築する
49- * @param id レイヤー識別名
50- * @param order 重ね合わせ順
51- * @param dir 対象ディレクトリ
54+ *
55+ * @param id
56+ * @param localizedName
57+ * @param order
58+ * @param colorGroup
59+ * @param initSync
60+ * @param dir
61+ * @param colorModelName
5262 */
53- public Layer(String id, String localizedName, int order, ColorGroup colorGroup, boolean initSync, String dir) {
63+ public Layer(String id, String localizedName, int order,
64+ ColorGroup colorGroup, boolean initSync, String dir,
65+ String colorModelName) {
5466 if (id == null || id.length() == 0 || order < 0 || dir == null) {
5567 throw new IllegalArgumentException();
5668 }
@@ -60,6 +72,9 @@
6072 if (colorGroup == null) {
6173 colorGroup = ColorGroup.NA;
6274 }
75+ if (colorModelName == null || colorModelName.trim().length() == 0) {
76+ colorModelName = null;
77+ }
6378 this.id = id;
6479 this.localizedName = localizedName;
6580 this.order = order;
@@ -66,6 +81,7 @@
6681 this.colorGroup = colorGroup;
6782 this.initSync = initSync;
6883 this.dir = dir;
84+ this.colorModelName = colorModelName;
6985 }
7086
7187 /**
@@ -134,6 +150,15 @@
134150 }
135151
136152 /**
153+ * カラーモデル名を取得する.
154+ *
155+ * @return カラーモデル名
156+ */
157+ public String getColorModelName() {
158+ return colorModelName;
159+ }
160+
161+ /**
137162 * 同一レイヤーであるか判断する.<br>
138163 * ID、順序、Dirで判断する.<br>
139164 * (カラーグループ、カラーグループ同期、表示名、は無視される.)<br>
--- trunk/src/charactermanaj/model/io/CharacterDataPersistent.java (revision 42)
+++ trunk/src/charactermanaj/model/io/CharacterDataPersistent.java (revision 43)
@@ -1003,8 +1003,11 @@
10031003 colorGroup = characterData.getColorGroup(colorGroupRefId);
10041004 initSync = Boolean.valueOf(attrColorGroup.getNamedItem("init-sync").getTextContent());
10051005 }
1006-
1007- Layer layer = new Layer(layerId, layerDisplayName, order, colorGroup, initSync, layerDir);
1006+
1007+ String colorModelName = "HSY"; // TODO: colorModelName
1008+
1009+ Layer layer = new Layer(layerId, layerDisplayName, order,
1010+ colorGroup, initSync, layerDir, colorModelName);
10081011 layers.add(layer);
10091012 }
10101013
--- trunk/src/charactermanaj/ui/ProfileEditDialog.java (revision 42)
+++ trunk/src/charactermanaj/ui/ProfileEditDialog.java (revision 43)
@@ -2150,6 +2150,8 @@
21502150
21512151 private static final int[] layersColumnWidths;
21522152
2153+ // TODO: ColorModelName
2154+
21532155 static {
21542156 final Properties strings = LocalizedResourcePropertyLoader
21552157 .getInstance().getLocalizedProperties(ProfileEditDialog.STRINGS_RESOURCE);
@@ -2343,6 +2345,8 @@
23432345
23442346 private String dir;
23452347
2348+ private String colorModelName;
2349+
23462350 public LayersTableRow() {
23472351 super();
23482352 }
@@ -2413,6 +2417,14 @@
24132417 this.dir = dir;
24142418 }
24152419
2420+ public String getColorModelName() {
2421+ return colorModelName;
2422+ }
2423+
2424+ public void setColorModelName(String colorModelName) {
2425+ this.colorModelName = colorModelName;
2426+ }
2427+
24162428 public boolean isValid() {
24172429 return layerName != null && layerName.trim().length() > 0
24182430 && dir != null && dir.trim().length() > 0 && partsCategory != null && colorGroup != null;
@@ -2429,7 +2441,8 @@
24292441 getOrder(),
24302442 colorGroup,
24312443 colorGroup.isEnabled(),
2432- getDir());
2444+ getDir(),
2445+ getColorModelName());
24332446 }
24342447 }
24352448
--- trunk/.gitignore (nonexistent)
+++ trunk/.gitignore (revision 43)
@@ -0,0 +1,4 @@
1+/characters
2+/docs
3+/lib
4+/bin
旧リポジトリブラウザで表示