colourdistance 0.7.7 → 0.7.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/colourdistance.rb +12 -9
- data/lib/colourdistance/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96e6ec04ed8d0202b38f1afe2e813cef7980718e
|
4
|
+
data.tar.gz: 1c7b81e7a7f6e27d1b3a4e60bcfd1c4cdd699d2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3499d760a1d4316af2ec12238f3ad6ac5c5ab59569a50b5d087efd04c74c46c7f88882f5fb0499609516d6b60a2882b04f8ccd3f3a91dd3f16a9fbb0704184a
|
7
|
+
data.tar.gz: e12a71333ea3452531c09dddab88a684a22211b501328ead2d2c404f42874ff9b7ec569401452fcd117dbd534c0ca64a22281a589f0acfdbef908629c8bd2d84
|
data/lib/colourdistance.rb
CHANGED
@@ -113,6 +113,7 @@ module Colourdistance
|
|
113
113
|
builder.c_singleton 'VALUE ciede2000(VALUE color1, VALUE color2) {
|
114
114
|
double pi = 3.1415927;
|
115
115
|
double e = 2.7182818;
|
116
|
+
double conversion = pi/180;
|
116
117
|
double l1;
|
117
118
|
double l2;
|
118
119
|
double a1;
|
@@ -169,7 +170,6 @@ module Colourdistance
|
|
169
170
|
a1 = 500.0 * (fx-fy);
|
170
171
|
b1 = 200.0 * (fy-fz);
|
171
172
|
|
172
|
-
|
173
173
|
if(x2 <= 0.008856){
|
174
174
|
fx = (7.787 * x2/0.95047 + 16.0/116.0);
|
175
175
|
}else{
|
@@ -193,7 +193,6 @@ module Colourdistance
|
|
193
193
|
a2 = 500.0 * (fx-fy);
|
194
194
|
b2 = 200.0 * (fy-fz);
|
195
195
|
|
196
|
-
|
197
196
|
double c1 = sqrt(a1*a1+b1*b1);
|
198
197
|
double c2 = sqrt(a2*a2+b2*b2);
|
199
198
|
double cdelta = c2 - c1;
|
@@ -235,7 +234,7 @@ module Colourdistance
|
|
235
234
|
h = h2 - h1 - 360.0;
|
236
235
|
}
|
237
236
|
|
238
|
-
double hdelta = 2.0 * sqrt(c1prime * c2prime) * sin(h/2.0);
|
237
|
+
double hdelta = 2.0 * sqrt(c1prime * c2prime) * sin(conversion*h/2.0);
|
239
238
|
double hprime = (h1 + h2)/2.0;
|
240
239
|
if (fabs(h1 - h2) > 180.0){
|
241
240
|
hprime += 180.0;
|
@@ -244,18 +243,22 @@ module Colourdistance
|
|
244
243
|
hprime *= 2.0;
|
245
244
|
}
|
246
245
|
|
247
|
-
double t = 1.0 - 0.17*cos(hprime-30.0) +
|
248
|
-
0.24*cos(2.0*hprime) +
|
249
|
-
0.32*cos(3.0*hprime + 6.0) -
|
250
|
-
0.20*cos(4.0*hprime-63.0);
|
246
|
+
double t = 1.0 - 0.17*cos(conversion*(hprime-30.0)) +
|
247
|
+
0.24*cos(conversion*(2.0*hprime)) +
|
248
|
+
0.32*cos(conversion*(3.0*hprime + 6.0)) -
|
249
|
+
0.20*cos(conversion*(4.0*hprime-63.0));
|
251
250
|
|
252
251
|
double sl = 1.0 + 0.015 * lbaradj/sqrt(20+lbaradj);
|
253
252
|
double sc = 1.0 + 0.045*cprime;
|
254
253
|
double sh = 1.0 + 0.015*cprime*t;
|
255
254
|
|
256
|
-
|
255
|
+
if (hprime < 0.0){
|
256
|
+
hprime += 360.0;
|
257
|
+
}
|
258
|
+
|
259
|
+
double rt = -2.0*cprimeadj*sin(conversion*60.0*pow(e,-(hprime-275.0)*(hprime-275.0)/(-625.0)));
|
257
260
|
|
258
|
-
double ldiff = (l1 - l2)/
|
261
|
+
double ldiff = (l1 - l2)/sl;
|
259
262
|
double adiff = cprimedelta/sc;
|
260
263
|
double bdiff = hdelta/sh;
|
261
264
|
double rdiff = rt*adiff*bdiff;
|