summaryrefslogtreecommitdiff
path: root/includes/logo.inc
blob: 442ff2b5e6918608fd13067e31e7ac2b2ae01f80 (plain)
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");