UNPKG

1.35 kBJavaScriptView Raw
1import * as d3 from 'd3-color';
2export function rgb2arr(str) {
3 var color = d3.color(str);
4 var arr = [0, 0, 0, 0];
5
6 if (color != null) {
7 arr[0] = color.r / 255;
8 arr[1] = color.g / 255;
9 arr[2] = color.b / 255;
10 arr[3] = color.opacity;
11 }
12
13 return arr;
14}
15export function decodePickingColor(color) {
16 var i1 = color && color[0];
17 var i2 = color && color[1];
18 var i3 = color && color[2];
19 var index = i1 + i2 * 256 + i3 * 65536 - 1;
20 return index;
21}
22export function encodePickingColor(featureIdx) {
23 return [featureIdx + 1 & 255, featureIdx + 1 >> 8 & 255, featureIdx + 1 >> 8 >> 8 & 255];
24}
25export function generateColorRamp(colorRamp) {
26 var canvas = document.createElement('canvas');
27 var ctx = canvas.getContext('2d');
28 canvas.width = 256;
29 canvas.height = 1;
30 var gradient = ctx.createLinearGradient(0, 0, 256, 1);
31 var data = null;
32 var min = colorRamp.positions[0];
33 var max = colorRamp.positions[colorRamp.positions.length - 1];
34
35 for (var i = 0; i < colorRamp.colors.length; ++i) {
36 var value = (colorRamp.positions[i] - min) / (max - min);
37 gradient.addColorStop(value, colorRamp.colors[i]);
38 }
39
40 ctx.fillStyle = gradient;
41 ctx.fillRect(0, 0, 256, 1);
42 data = new Uint8ClampedArray(ctx.getImageData(0, 0, 256, 1).data);
43 return new ImageData(data, 256, 1);
44}
45//# sourceMappingURL=color.js.map
\No newline at end of file