colourdistance 0.7.7 → 0.7.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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;
|