|
13 | 13 | <script>
|
14 | 14 | const VARIATION_SELECTOR_15 = String.fromCharCode(0xfe0e);
|
15 | 15 | const VARIATION_SELECTOR_16 = String.fromCharCode(0xfe0f);
|
| 16 | + const EMOJI_SIZE = 32 |
16 | 17 |
|
17 | 18 | function detectAliases(db) {
|
18 | 19 | for (var i = 0; i < db.length; ++i) {
|
|
22 | 23 | continue;
|
23 | 24 | }
|
24 | 25 |
|
25 |
| - var candidates = []; |
26 |
| - |
27 |
| - if (raw.length === 1) { |
28 |
| - candidates.push(raw + VARIATION_SELECTOR_15); |
29 |
| - candidates.push(raw + VARIATION_SELECTOR_16); |
30 |
| - } else if (raw[raw.length - 1] === VARIATION_SELECTOR_16) { |
31 |
| - var base = raw.substr(0, raw.length - 1); |
32 |
| - candidates.push(base); |
33 |
| - candidates.push(base + VARIATION_SELECTOR_15); |
| 26 | + if (raw.indexOf(VARIATION_SELECTOR_16) > -1) { |
| 27 | + var candidates = [raw.replace(VARIATION_SELECTOR_16, ""), raw]; |
| 28 | + } else { |
| 29 | + var candidates = [raw, raw + VARIATION_SELECTOR_16]; |
34 | 30 | }
|
35 | 31 |
|
36 | 32 | var aliases = candidates.filter(isColorEmoji);
|
37 |
| - if (aliases.length) { |
38 |
| - emoji.unicodes = aliases; |
39 |
| - } else { |
40 |
| - delete emoji.unicodes; |
41 |
| - } |
| 33 | + emoji.emoji = aliases[0]; |
42 | 34 | }
|
43 | 35 |
|
44 | 36 | dump(db);
|
|
52 | 44 | }
|
53 | 45 |
|
54 | 46 | var canvas = document.createElement("canvas");
|
| 47 | + canvas.width = canvas.height = EMOJI_SIZE; |
| 48 | + |
55 | 49 | function color(emoji, rgb) {
|
56 | 50 | var context = canvas.getContext("2d");
|
57 |
| - context.clearRect(0, 0, 32, 32); |
| 51 | + context.clearRect(0, 0, canvas.width, canvas.height); |
58 | 52 | context.fillStyle = rgb;
|
59 | 53 | context.textBaseline = "top";
|
60 |
| - context.font = "32px Arial"; |
| 54 | + context.font = EMOJI_SIZE+"px Arial"; |
61 | 55 | context.fillText(emoji, 0, 0);
|
62 |
| - var data = context.getImageData(0, 0, 32, 32).data; |
| 56 | + var data = context.getImageData(0, 0, EMOJI_SIZE, EMOJI_SIZE).data; |
63 | 57 | for (var i = 0; i < data.length; i += 4) {
|
64 | 58 | if (data[i] === 0 && data[i + 1] === 0 && data[i + 2] === 0) {
|
65 | 59 | continue;
|
|
0 commit comments