summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCristei Gabriel <cristei.g772@gmail.com>2023-12-18 03:19:59 +0200
committerCristei Gabriel <cristei.g772@gmail.com>2023-12-18 03:19:59 +0200
commit6442494822d12c23cdd609031c4039d3309b64f6 (patch)
treec542f1039ecc8c5fe30cca3c3bad0481a0196d07
parent758de879cb759576604e325e0de1900da4fd8cf9 (diff)
dynamic ascii art
-rw-r--r--web/BlackWhiteResult.php21
-rw-r--r--web/ColorResult.php20
-rw-r--r--web/Processor.php103
-rw-r--r--web/Result.php31
-rw-r--r--web/imgs/good1.jpgbin0 -> 424444 bytes
-rw-r--r--web/imgs/good2.jpgbin0 -> 131635 bytes
-rw-r--r--web/imgs/good3.pngbin0 -> 1067796 bytes
-rw-r--r--web/imgs/good4.jpgbin0 -> 163927 bytes
-rw-r--r--web/imgs/good5.pngbin0 -> 101000 bytes
-rw-r--r--web/imgs/good6.jpgbin0 -> 25231 bytes
-rw-r--r--web/imgs/good7.jpgbin0 -> 454225 bytes
-rw-r--r--web/imgs/good8.jpgbin0 -> 131065 bytes
-rw-r--r--web/index.php67
13 files changed, 204 insertions, 38 deletions
diff --git a/web/BlackWhiteResult.php b/web/BlackWhiteResult.php
new file mode 100644
index 0000000..f687ec6
--- /dev/null
+++ b/web/BlackWhiteResult.php
@@ -0,0 +1,21 @@
+<?php
+/**
+ * The black / white or "ascii art" output processor.
+ * Transforms the input color values into ascii art characters.
+ *
+ * (c) 2016 Alex Schenkel
+ */
+namespace Img2Ascii;
+require __DIR__ . '/result.php';
+
+class BlackWhiteResult extends Result {
+ public $symbols = "@%#*+=-:. ";
+
+ protected function gray2ascii($gray) {
+ $level = round($gray / 255.0 * (strlen($this->symbols)-1));
+ return $this->symbols[(int)min($level,strlen($this->symbols)-1)];
+ }
+ public function transformValue($value) {
+ return $this->gray2ascii($value);
+ }
+}
diff --git a/web/ColorResult.php b/web/ColorResult.php
new file mode 100644
index 0000000..549bda0
--- /dev/null
+++ b/web/ColorResult.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Transforms an ascii result to a colored HTML representation. Each
+ * color value is represented by a single char, but HTML-styled to
+ * display the correct color.
+ *
+ * (c) 2016 Alex Schenkel
+ */
+namespace Img2Ascii;
+
+class ColorResult extends Result {
+ public $blockChar = '#'; // can also be an HTML entity, e.g. &#x2588;
+
+ protected function transformValue($value) {
+ $r = floor($value[0]);
+ $g = floor($value[1]);
+ $b = floor($value[2]);
+ return "<span style='color:rgb({$r},{$g},{$b})'>{$this->blockChar}</span>";
+ }
+}
diff --git a/web/Processor.php b/web/Processor.php
new file mode 100644
index 0000000..b1bf0bf
--- /dev/null
+++ b/web/Processor.php
@@ -0,0 +1,103 @@
+<?php
+/**
+ * The Processor class processes an image and prepares
+ * the color values needed for the ascii output.
+ *
+ * Its main job is to process each pixel, do color calculations and
+ * store an internal color array for later ascii output, which then is done
+ * by its helper Result classes.
+ *
+ * (c) 2016 Alex Schenkel
+ */
+namespace Img2Ascii;
+
+class Processor {
+ protected $imgPath;
+ protected $image;
+ protected $imageWidth;
+ protected $imageHeight;
+
+ protected $result;
+
+ public function __construct($pathOrImgres) {
+ if (is_file($pathOrImgres)) {
+ $this->imgPath = $pathOrImgres;
+ $this->image = imagecreatefromstring(file_get_contents($pathOrImgres));
+ } else {
+ $this->image = $pathOrImgres;
+ }
+ try {
+ $this->imageWidth = imagesx($this->image);
+ $this->imageHeight = imagesy($this->image);
+ } catch (\Exception $e) {
+ throw new \Exception("Image creation failed. Is the given resource a valid image?");
+ }
+ }
+
+ public function asciify($pixelWidth = 10) {
+ $charsX = floor($this->imageWidth / $pixelWidth);
+ return $this->asciifyToWidth($charsX);
+ }
+
+ public function asciifyToWidth($charsX) {
+ $charsX = (int)$charsX;
+ if (!$charsX) $charsX = floor($this->imageWidth / 10);
+ $this->result = null;
+
+ $blockWidth = $this->imageWidth / (float)$charsX;
+ $blockHeight = $blockWidth * 8.0/5.0;
+ $blockWidth = max(1,floor($blockWidth));
+ $blockHeight = max(1,floor($blockHeight));
+
+ $ascii = array();
+
+ for ($y = 0; $y < $this->imageHeight; $y += $blockHeight) {
+ for ($x = 0; $x < $this->imageWidth; $x += $blockWidth) {
+ $value = [0,0,0];
+ if ($x === 0) {
+ $ascii[$y / $blockHeight] = array();
+ }
+ $counter = 0;
+ for ($innerY = $y; $innerY < $y + $blockHeight; $innerY++) {
+ if ($innerY > $this->imageHeight-1) break;
+ for ($innerX = $x; $innerX < $x + $blockWidth; $innerX++) {
+ if ($innerX > $this->imageWidth-1) break;
+ $counter++;
+ $rgb = imagecolorat($this->image,$innerX, $innerY);
+ $rgb = array($rgb >> 16, $rgb >> 8 & 255, $rgb & 255);
+ $value[0] += $rgb[0];
+ $value[1] += $rgb[1];
+ $value[2] += $rgb[2];
+ }
+ }
+ $value[0] = $value[0] / $counter;
+ $value[1] = $value[1] / $counter;
+ $value[2] = $value[2] / $counter;
+ $ascii[$y / $blockHeight][$x / $blockWidth] = $value;
+ }
+ }
+ $this->result = $ascii;
+ return $this;
+ }
+
+ protected function saturate($ascii) {
+ foreach($ascii as $y =>$line) {
+ foreach($line as $x => $value) {
+ $ascii[$y][$x] = $value[0]*1 + $value[1]*1 + $value[2]*1;
+ }
+ }
+ return $ascii;
+ }
+
+ public function colorResult($blockChar = '#') {
+ $res = new ColorResult($this->result);
+ $res->blockChar = $blockChar;
+ return $res;
+ }
+
+ public function result($symbols = "@%#*+=-:. ") {
+ $res = new BlackWhiteResult($this->saturate($this->result));
+ $res->symbols = $symbols;
+ return $res;
+ }
+}
diff --git a/web/Result.php b/web/Result.php
new file mode 100644
index 0000000..52e4c83
--- /dev/null
+++ b/web/Result.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * The basic Result class for the Img2Ascii processor.
+ *
+ * It defines common output functions for the implementing output
+ * transformers.
+ *
+ * (c) 2016 Alex Schenkel
+ */
+namespace Img2Ascii;
+
+class Result {
+ public $ascii;
+ public function __construct(&$ascii) {
+ $this->ascii =& $ascii;
+ }
+
+ public function writeFile($path, $lineEnding = "\n") {
+ $fh = fopen($path,'w');
+ foreach($this->ascii as $line) {
+ foreach($line as $value) {
+ $value = $this->transformValue($value);
+ fputs($fh, $value);
+ }
+ fputs($fh,$lineEnding);
+
+ }
+ fclose($fh);
+ return $this;
+ }
+}
diff --git a/web/imgs/good1.jpg b/web/imgs/good1.jpg
new file mode 100644
index 0000000..6a1e742
--- /dev/null
+++ b/web/imgs/good1.jpg
Binary files differ
diff --git a/web/imgs/good2.jpg b/web/imgs/good2.jpg
new file mode 100644
index 0000000..32347a4
--- /dev/null
+++ b/web/imgs/good2.jpg
Binary files differ
diff --git a/web/imgs/good3.png b/web/imgs/good3.png
new file mode 100644
index 0000000..c6679a4
--- /dev/null
+++ b/web/imgs/good3.png
Binary files differ
diff --git a/web/imgs/good4.jpg b/web/imgs/good4.jpg
new file mode 100644
index 0000000..c8b5fd9
--- /dev/null
+++ b/web/imgs/good4.jpg
Binary files differ
diff --git a/web/imgs/good5.png b/web/imgs/good5.png
new file mode 100644
index 0000000..2f9f7e8
--- /dev/null
+++ b/web/imgs/good5.png
Binary files differ
diff --git a/web/imgs/good6.jpg b/web/imgs/good6.jpg
new file mode 100644
index 0000000..68c6d45
--- /dev/null
+++ b/web/imgs/good6.jpg
Binary files differ
diff --git a/web/imgs/good7.jpg b/web/imgs/good7.jpg
new file mode 100644
index 0000000..01bcd28
--- /dev/null
+++ b/web/imgs/good7.jpg
Binary files differ
diff --git a/web/imgs/good8.jpg b/web/imgs/good8.jpg
new file mode 100644
index 0000000..5ae221c
--- /dev/null
+++ b/web/imgs/good8.jpg
Binary files differ
diff --git a/web/index.php b/web/index.php
index f9ede7b..5de9665 100644
--- a/web/index.php
+++ b/web/index.php
@@ -1,3 +1,4 @@
+<?php header('Content-type: text/html; charset=utf-8');?>
<?php
/*
ini_set('display_errors', '1');
@@ -6,6 +7,9 @@ error_reporting(E_ALL);
*/
require __DIR__ . '/minecraft.php';
+require __DIR__ . '/blackwhiteresult.php';
+require __DIR__ . '/colorresult.php';
+require __DIR__ . '/processor.php';
function query_source_server($ip = null, $port = null) {
// https://stackoverflow.com/questions/33454035/counter-strike-go-server-query
@@ -43,7 +47,8 @@ function query_source_server($ip = null, $port = null) {
$server['game'] = $queryData[2];
$server['description'] = $queryData[3];
$packet = $queryData[4];
- $app_id = array_pop(unpack("S", substr($packet, 0, 2)));
+ $app_id = (unpack("S", substr($packet, 0, 2)));
+ $app_id = array_pop($app_id);
$server['players'] = ord(substr($packet, 2, 1));
$server['playersmax'] = ord(substr($packet, 3, 1));
$server['bots'] = ord(substr($packet, 4, 1));
@@ -111,8 +116,25 @@ function generate_mc_status_div($server = null) {
echo "<hr>";
echo "</div>\n";
}
-?>
+function gen_ascii() {
+ $dirp = './imgs/';
+ $imgs = scandir($dirp);
+ $imgn = count($imgs);
+ $path = $dirp . '' . $imgs[rand(2, $imgn - 1)];
+ $processor = new Img2Ascii\Processor($path);
+ $res = $processor->asciifyToWidth(45)->result(" .:-=+*#%@");
+ foreach($res->ascii as $line) {
+ foreach($line as $value) {
+ $value = $res->transformValue($value);
+ echo ($value);
+ }
+
+ echo '<br>';
+ }
+}
+
+?>
<?php
echo file_get_contents("static_elements/h.html");
@@ -143,41 +165,10 @@ function generate_mc_status_div($server = null) {
<div style="float: left; width: 570px; background-color: #808080; padding-left: 30px; margin-top: 20px;">
<h3>we want to provide an oldschool hassle-free gaming experience</h3>
<h3>our servers run minimal plugins developed by our own team, aiming only to smooth out vanilla gameplay</h3>
- <pre style="display:block; text-align: center">⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⣄⡀⠀⢿⡿⣁⠀⢆⡘⠤⡘⠠⢰⠃⡄⠂⠄⠀⠀⠀⠀⡀⡆⠌⢄⠀⠀⢠⡇⠂⡌⠄⠀⠀⠀⠀⠀⠀⠡⣖⠀⢃⠸⠀⠸⣟⡄⠘⡽⡜⡄⠀⠀⠀⠈⠦⠀⠀⠀⠸
-⣿⣿⣿⣿⣿⣿⡿⠁⠈⢻⡝⣟⣷⡿⢁⠤⢀⠢⢌⠰⡀⠂⡟⠠⡄⠈⠀⠀⣀⠤⠐⣰⠌⡈⢄⠂⡡⣺⠄⡇⠰⠈⡄⢃⠰⢀⠰⢀⠂⢽⠂⢼⠐⡠⠄⣿⡼⡀⠱⢹⡰⠀⠀⠀⠀⠀⣆⠀⠀⠀
-⣿⣿⣿⣿⣿⣿⠁⢄⠠⢀⣹⣞⡿⢁⢊⠰⢀⠎⡐⢂⠁⢳⠋⠴⠁⠀⣠⠞⡠⢁⣺⡇⠤⢁⠢⠘⢠⡿⢰⡏⠄⢃⡐⢈⠰⢈⠰⢸⠌⣸⠌⢺⡐⠤⢈⣽⣧⢩⡄⢉⢧⠡⠉⡍⠒⠤⣸⡀⠀⠀
-⣿⣿⣿⣿⣿⣿⠩⡐⠌⢿⡯⣿⠇⡌⠢⢡⠈⡔⠈⠂⠃⢾⢈⠒⠀⡴⢁⡾⠑⣸⢻⢀⠒⢠⠂⡉⢼⡇⢸⡇⠌⠄⡄⢃⠰⢈⠰⠸⡂⢼⢈⢹⠆⠰⢸⢿⠸⡆⢷⢈⠸⣄⠃⠤⢉⡐⠨⣧⠀⡀
-⣿⣿⣿⣿⣿⣿⡟⣿⣻⢾⡷⣿⠐⡄⢃⠆⠈⠐⠁⠀⠀⣾⠸⠀⢀⡇⣼⠇⢡⡏⣇⠢⠘⡀⠆⢡⡎⡇⢺⣇⠘⢠⠐⠨⡐⢂⠢⢡⡇⠾⢈⢸⡃⡘⢼⢸⠀⢻⠈⣇⠌⣷⢈⡐⠂⠤⢱⢿⠀⠔
-⣿⣿⣿⣿⣿⣿⣯⡚⢧⡻⣽⡏⠰⡈⢄⠈⠀⡀⠀⠀⠀⣿⢸⢀⢂⢸⡟⡈⢼⢳⠁⢂⡁⠆⡑⢺⢱⡇⣼⢿⠈⠄⡈⠡⢐⠠⢁⢺⡄⡟⡀⢺⢁⡴⡿⢸⢄⠈⡇⢺⡆⢸⡆⠤⢉⠰⢐⣸⠈⠔
-⣿⣿⣿⣿⣿⣿⣿⣷⠁⢿⣹⡇⠡⠌⠀⠀⠀⠀⠀⠀⢀⡿⣸⠀⢂⣿⢃⠐⡞⡼⢈⣄⣐⣤⡴⡯⢼⠴⡿⢼⠾⠶⠶⠶⣤⠂⠌⣹⢰⡇⡐⡏⢸⢡⡇⡽⡀⠑⢳⠐⣷⠀⢿⡇⠌⡐⠂⡽⢈⡐
-⣿⣿⣿⣿⣿⣿⣿⡏⠠⣄⣿⠄⠀⠀⠀⠀⠀⡅⠀⠠⢠⡟⣧⠈⣰⣿⠀⣼⠴⡗⢉⠉⡐⢠⢷⠃⢸⢠⠃⢸⣿⠀⢀⠂⢸⠀⢂⡏⣼⠁⣸⠁⡏⡜⡇⡧⠬⣴⣼⣀⢿⢇⢸⣹⠀⠀⡁⠇⡃⠄
-⣿⣿⣿⣿⣿⣿⣿⣇⡷⠊⢸⠀⠀⠀⢠⣦⣄⠇⡈⢁⠆⣿⣧⠐⣽⡇⠐⣾⢰⡇⢂⠡⢈⡏⡞⠀⡼⣸⠀⠀⣿⠀⠀⠂⣏⠐⢸⢡⡟⢀⡏⣼⢱⠁⣧⠁⠀⠀⠈⡟⣻⠺⣤⣿⡆⠐⠀⡇⠄⡈
-⣿⣿⣿⣿⣿⣿⣿⣿⣄⠂⣿⠀⠀⢠⠃⢿⣣⠐⠠⠌⠠⣿⣿⠀⢿⠃⢌⣿⠸⡇⢀⢂⡼⡼⠀⢀⢧⡯⠄⡀⣿⠀⠌⢰⡇⠈⣼⡿⠁⡞⣸⢇⠇⢰⡟⠀⠀⠀⠈⡇⡝⠀⢇⡟⡧⣄⠂⡇⠀⢰
-⣿⣿⣿⣿⣿⡿⢭⢿⣿⣶⣻⡆⠀⡏⠠⠸⡽⣏⠐⡈⡐⢿⣻⡠⣿⠈⢸⡍⣆⣧⣾⣾⣿⣿⣶⣾⣾⣆⠄⠀⣿⡆⠀⣸⠁⣸⡿⢁⡞⡕⡹⡌⠀⣼⢁⠤⠤⢀⣀⡇⡇⠀⠸⣼⡇⠀⠑⣷⠈⣸
-⣿⣿⣿⣿⣿⡹⢎⣗⡻⣿⣷⣇⠘⣇⠄⡁⢻⣽⡆⠡⠠⢹⣿⡓⣿⣴⣿⣿⣿⣿⡿⣟⣿⢫⣟⣏⠉⠙⠛⠶⣿⢿⠀⡞⢀⡟⢡⣾⠊⣰⠟⠀⣼⠃⣐⣤⣴⣦⣤⣧⣇⣠⠀⣿⡇⠀⡁⡏⠀⡿
-⣿⣿⣿⡟⣧⣛⡭⢶⡙⣿⢻⣿⡄⢻⡔⠠⡈⢧⢿⡆⢡⠈⢿⣇⣷⣿⡿⠛⣯⢽⡳⢧⡞⠀⠀⣽⡀⠀⠀⠀⠛⠘⠻⢣⣞⣴⠟⠁⠠⠏⠀⠐⠁⢸⣿⢿⣟⠿⣿⡿⣿⣷⣤⣸⡂⠀⢸⠃⢰⠇
-⣿⣿⡿⣹⣧⡓⢾⢷⡟⢸⣯⢹⣷⡌⢻⣄⠱⣌⠳⣿⣦⠲⠾⣿⣿⣿⠁⠈⣟⠊⢿⡧⢿⠃⡜⣸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣏⣟⡑⢀⡻⡴⢷⠈⠻⣿⣿⣟⠋⡟⢀⡎⠄
-⣿⣿⠳⣽⠲⣝⡿⢸⡇⣸⠙⣷⢺⣿⣧⡻⣷⣌⢢⡙⢽⣷⣤⠘⢧⠙⢦⡀⢻⡌⠀⢠⢁⠒⢯⡀⠀⠀⠀⠀⠀⡀⠀⢀⠀⢀⠀⠀⠀⠀⠀⠀⠀⡏⣷⣹⡏⠵⡙⣺⠀⠀⠸⣿⣿⣾⢁⡾⠀⣲
-⣿⢫⡝⣾⢹⣾⢃⢹⡇⢼⠂⣿⣹⠋⢉⡿⣾⣿⣷⣌⠲⣽⢿⣿⣮⣷⣀⠈⠀⠙⠗⠒⠚⡋⠉⠀⠀⠀⠀⣺⠂⠀⠀⢀⠀⠠⠐⣀⡀⠂⠀⠀⠀⢷⢈⠩⠀⡡⠲⠏⠀⠀⣸⢟⣽⣫⡟⢁⣴⢏
-⣏⢷⣙⣮⠟⡐⠢⢼⡇⢸⡿⢧⣟⠀⡇⡄⣤⢩⢿⣛⢷⣤⣭⣛⢿⣮⠉⠳⠦⣤⠁⠁⡡⢈⢄⠡⠅⡆⠂⠀⠀⡈⠀⢈⡠⠆⠨⢀⠀⠀⠀⠄⠐⠈⠙⡲⢷⡼⡆⠀⠄⡐⠁⣿⣿⣋⣴⣾⢋⣾
-⣞⢺⣼⠏⡐⠌⡁⣿⡇⢸⡇⠼⣿⠀⢷⠀⢹⡆⣿⡉⠚⠶⣭⣻⣿⡟⠢⢄⢤⢇⡀⡅⠦⠠⡴⠀⠀⠐⢐⠀⠆⠃⠄⠖⠉⠂⠅⠊⠁⢒⠄⠐⣀⠀⠂⠉⣀⠁⡄⠁⠈⠐⢸⣿⢫⣿⡳⣵⡿⢿
-⣎⡿⢼⠂⡅⢊⠔⣿⣵⢺⡏⠄⣿⣧⡈⠓⢌⠷⢾⡇⢁⠢⢀⢹⠑⣷⠈⡠⠏⠤⠨⣁⢃⠕⠋⡫⢗⠉⠈⡂⠁⠀⢂⠐⢁⠣⠀⠁⠀⠘⠒⠥⠴⢄⢀⠐⠁⠀⠐⠀⠀⠈⡿⣬⡿⢣⡓⣸⣇⢻
-⣾⣃⡯⢼⣀⠣⣈⣿⡽⣺⠛⢠⠹⡻⣿⣦⡀⠑⠪⣇⠂⠔⡈⡾⠊⣿⠎⠵⠃⡓⠀⡀⠉⠄⠆⠁⠉⠀⠈⠡⠂⠀⠀⡀⢈⣀⠊⣡⠂⠀⡐⠛⠊⢁⠰⠖⠃⠀⠁⢀⡀⢰⠟⡞⠡⢠⢰⣿⠸⣸
-⣿⣿⣳⢯⣿⣿⣿⣷⣽⣹⡇⠌⣷⢳⢋⠻⢿⣦⣀⡟⡀⠊⢰⡇⠂⣿⡇⠠⠁⠀⠁⠀⡐⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⡔⠁⠀⠉⠢⢀⠀⠀⠀⠀⠈⠈⠁⢀⠠⠊⠀⠈⢺⡞⠠⢁⢂⣯⡏⠵⡘
-⣿⣿⡜⣿⣿⣿⣿⣿⢾⣻⣧⡂⢹⣏⣿⡄⠌⢻⣿⣧⠀⠡⣸⠠⠁⣾⡇⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⢀⡠⠐⠁⠀⠀⠀⠀⠀⠀⠀⠉⠫⣦⠀⠀⢀⠔⠁⠀⠀⠀⡀⠀⠙⢦⢁⡞⣼⡙⢦⠑
-⣿⣿⡽⣹⣿⣿⣿⣿⡯⣷⣯⢿⣄⠻⣜⣷⡈⠄⢻⣷⠈⢠⡗⠠⠁⣿⢸⣄⠀⠀⠀⠀⠀⠀⢀⡔⠊⠉⠀⠀⠀⠀⠀⠀⡰⠂⠤⣀⠀⠀⢀⣃⠀⣰⠁⠀⠀⡴⢴⣧⠀⡀⠀⠀⠙⢦⡏⡝⢢⠌
-⡿⣿⣿⣽⣿⢿⣿⣿⡷⣣⢿⣯⣻⢷⣽⢞⣿⡄⠂⣿⠀⣸⠃⠠⢁⣷⠸⡇⠑⢤⡀⠀⣠⠞⠁⠀⠀⠀⠀⠀⠀⣀⠔⠀⠀⠀⠀⠈⢧⡀⢿⣿⣾⡿⠁⡠⢊⣴⣿⢸⡷⣄⣐⠀⢀⠄⠙⠓⠧⣌
-⣿⣷⣿⣿⣿⣿⣿⣿⡿⣵⢫⣷⣏⣟⣾⣻⣾⣿⣆⢿⠀⡿⠀⠀⠂⣼⠐⣿⡀⢀⡼⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠒⢄⡀⠀⠀⠀⠀⠑⠮⠿⠛⠒⢈⣴⣿⣿⡏⡾⢁⠈⣿⠖⠁⠀⠀⠀⠀⠀
-⣿⣿⣿⣿⣿⣿⣿⣿⣿⣳⣿⣿⣿⣯⣟⣷⢯⣿⣿⣿⢰⠃⠀⠀⠐⢸⠀⣻⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠲⠄⡀⠀⠀⠀⢀⣠⣾⣿⣿⣿⣿⣃⠇⢂⢡⠏⠀⠀⠀⠀⢀⠀⠀
-⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣞⢾⡻⢷⣯⣿⣼⠀⠀⠀⢀⡼⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠲⣤⣀⡀⠀⠀⠀⠀⠈⠢⣤⣾⣿⣿⣿⣿⣿⣿⣿⢸⠠⡱⠃⠀⠀⠀⣠⣶⠋⠀⠀
-⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢾⣽⣯⣞⣽⡟⠀⣠⠔⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠿⣷⣤⡀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣷⣿⢀⡜⠁⠀⠀⣠⡞⡱⠁⠀⠀⠀
-⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢯⢿⣿⣿⣿⣧⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠠⢀⠀⠀⠀⠀⠀⠀⠙⢿⣷⣄⡀⠀⠀⠀⠹⢿⣿⣿⣿⣿⡼⠀⠀⢀⣾⣿⡟⠀⠀⠀⠀⠀
-⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡻⣞⢾⡹⡿⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠂⢄⡀⠀⠀⣠⣿⣿⣿⣿⣦⣄⠀⠀⠀⠻⣿⣿⡟⢀⠀⣡⠂⢺⣿⡣⢀⢀⠄⠀⠀
-⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣝⣾⣿⣧⢶⡶⣿⢿⣿⣦⣤⣀⣀⣀⣤⣀⣴⣶⣤⣤⣄⡀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⢠⣾⣿⣾⡷⣰⠉⡆⣹⣿⣿⣶⣿⣆⡀⢀
-⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡞⣯⢷⣏⡿⣽⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣽⣿⡿⠕⠉⢆⢱⢸⣿⣿⣿⣿⣿⣿⣿
-⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⡽⣾⣹⡞⣷⡽⣞⡽⣯⢿⣹⢯⣿⣿⣿⣿⣯⣿⡿⣿⣿⣿⣿⣿⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⢪⢿⣿⣿⣿⣿⣿⣿⣿
-⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⡽⣶⢯⡽⣞⣳⢯⡽⣞⣯⣽⢫⣿⡟⣿⣻⢿⡽⣿⣿⣿⣿⣻⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡈⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿
-⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⢷⣛⡾⣽⣹⡽⢾⣹⠷⣞⣞⠿⣼⣿⡘⣯⣾⣿⢿⣹⢯⣟⡿⣿⢿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⠀⠀⠈⠻⣿⣿⣿⣿⣿</pre>
+ <pre style="display:block; text-align: center">
+ <?php
+ gen_ascii();
+ ?></pre>
<h3>we hope you enjoy your stay and have fun!</h3><br>
<h3><a href="https://steamcommunity.com/groups/networkheaven">STEAM</a><h3>
</div>
@@ -186,4 +177,4 @@ function generate_mc_status_div($server = null) {
<?php
echo file_get_contents("static_elements/f.html");
-?> \ No newline at end of file
+?>