@@ -67,7 +67,6 @@ Image adjustColor(Image src,
67
67
exposure = exposure? .clamp (0 , 1000 );
68
68
amount = amount.clamp (0 , 1000 );
69
69
70
- const degToRad = 0.0174532925 ;
71
70
const avgLumR = 0.5 ;
72
71
const avgLumG = 0.5 ;
73
72
const avgLumB = 0.5 ;
@@ -100,19 +99,6 @@ Image adjustColor(Image src,
100
99
exposure = pow (2.0 , exposure);
101
100
}
102
101
103
- late num hueR;
104
- late num hueG;
105
- late num hueB;
106
- if (hue != null ) {
107
- hue *= degToRad;
108
- final s = sin (hue);
109
- final c = cos (hue);
110
-
111
- hueR = (2.0 * c) / 3.0 ;
112
- hueG = (- sqrt (3.0 ) * s - c) / 3.0 ;
113
- hueB = ((sqrt (3.0 ) * s - c) + 1.0 ) / 3.0 ;
114
- }
115
-
116
102
final hsv = < num > [0.0 , 0.0 , 0.0 ];
117
103
118
104
for (final frame in src.frames) {
@@ -138,9 +124,10 @@ Image adjustColor(Image src,
138
124
b *= tb;
139
125
}
140
126
141
- if (saturation != null ) {
127
+ if (saturation != null || hue != null ) {
142
128
rgbToHsv (r, g, b, hsv);
143
- hsv[1 ] *= saturation;
129
+ hsv[0 ] += hue ?? 0.0 ;
130
+ hsv[1 ] *= saturation ?? 1.0 ;
144
131
hsvToRgb (hsv[0 ], hsv[1 ], hsv[2 ], hsv);
145
132
r = hsv[0 ];
146
133
g = hsv[1 ];
@@ -165,16 +152,6 @@ Image adjustColor(Image src,
165
152
b = b * exposure;
166
153
}
167
154
168
- if (hue != null && hue != 0.0 ) {
169
- final hr = r * hueR + g * hueG + b * hueB;
170
- final hg = r * hueB + g * hueR + b * hueG;
171
- final hb = r * hueG + g * hueB + b * hueR;
172
-
173
- r = hr;
174
- g = hg;
175
- b = hb;
176
- }
177
-
178
155
final msk =
179
156
mask? .getPixel (p.x, p.y).getChannelNormalized (maskChannel) ?? 1 ;
180
157
final blend = msk * amount;
0 commit comments