= $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) { if (isset($newPacks[$y][$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)))); } else { imagesetpixel($img, $x, $y, imagecolorallocate($img, 255, 255, 255)); } } } $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"); imagepng($img3, "/tmp/ponieslogo1.png"); $isLoggedIn = true; $isLowerLoggedIn = false; echo("Generating private logo\n"); $columns = ceil(sqrt(count(array_filter(scoreOrderGlobal())))); echo(" Using " . $columns . " columns\n"); $members = array_values(array_filter(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; }); echo(" " . count($members) . " members\n"); $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) { if (isset($newPacks[$y][$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)))); } else { imagesetpixel($img, $x, $y, imagecolorallocate($img, 255, 255, 255)); } } } $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/newlogo3.png"); imagepng($img3, "/tmp/ponieslogo1b.png");