1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/functions.inc";
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/bitset.inc";
require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/score.inc";
$columns = round(sqrt(count(scoreOrderGlobal())));
$members = scoreOrderGlobal();
usort($members, function ($a, $b) {
$vr = hexdec(substr($a["color"], 0, 2));
$vg = hexdec(substr($a["color"], 2, 2));
$vb = hexdec(substr($a["color"], 4, 2));
$hsl = rgbToHsl($vr, $vg, $vb);
if ($hsl[0] == 0) $hsl[0] = 360;
$ra = $hsl[0];
$vr = hexdec(substr($b["color"], 0, 2));
$vg = hexdec(substr($b["color"], 2, 2));
$vb = hexdec(substr($b["color"], 4, 2));
$hsl = rgbToHsl($vr, $vg, $vb);
if ($hsl[0] == 0) $hsl[0] = 360;
$rb = $hsl[0];
return $ra - $rb;
});
$packs = [];
$currentPack = [];
foreach ($members as $member) {
if (count($currentPack) >= $columns) {
$packs[] = $currentPack;
$currentPack = [];
}
$currentPack[] = $member["color"];
}
if (count($currentPack) > 0) $packs[] = $currentPack;
$newPacks = [];
foreach ($packs as $pack) {
usort($pack, function ($a, $b) {
$vra = hexdec(substr($a, 0, 2));
$vga = hexdec(substr($a, 2, 2));
$vba = hexdec(substr($a, 4, 2));
$hsla = rgbToHsl($vra, $vga, $vba);
$ra = $hsla[2] * $hsla[1];
$vrb = hexdec(substr($b, 0, 2));
$vgb = hexdec(substr($b, 2, 2));
$vbb = hexdec(substr($b, 4, 2));
$hslb = rgbToHsl($vrb, $vgb, $vbb);
$rb = $hslb[2] * $hslb[1];
return $rb < $ra;
});
while (count($pack) < $columns) $pack[] = "ffffff";
$newPacks[] = $pack;
}
$img = imagecreatetruecolor($columns, $columns);
$factor = 64;
for ($y = 0; $y < $columns; ++$y) {
for ($x = 0; $x < $columns; ++$x) {
imagesetpixel($img, $x, $y, imagecolorallocate($img, hexdec(substr($newPacks[$y][$x], 0, 2)), hexdec(substr($newPacks[$y][$x], 2, 2)), hexdec(substr($newPacks[$y][$x], 4, 2))));
}
}
$img2 = imagecreatetruecolor($columns * $factor, $columns * $factor);
imagecopyresampled($img2, $img, 0, 0, 0, 0, $columns * $factor, $columns * $factor, $columns, $columns);
imagepng($img2, "/tmp/image.png");
$img3 = imageCreateCorners("/tmp/image.png", $columns * 10);
unlink("/tmp/image.png");
imagepng($img3, $_SERVER['DOCUMENT_ROOT'] . "/assets/logo/newlogo.png");
for ($x = 1; $x <= 120; $x++) {
imagefilter($img2, IMG_FILTER_GAUSSIAN_BLUR);
}
imagefilter($img2, IMG_FILTER_BRIGHTNESS, -100);
imagepng($img2, "/tmp/image.png");
$img3 = imageCreateCorners("/tmp/image.png", $columns * 10);
unlink("/tmp/image.png");
imagepng($img3, $_SERVER['DOCUMENT_ROOT'] . "/assets/logo/newlogo-template.png");
|