Statistik in ein Bild umwandeln lassen

KayjayPP

Grünschnabel
Hallo,
ich vor eine Statistik als Grafik anzeigen zu lassen um sie in Foren etc. zu benutzen.
Leider scheitere ich daran die Statistik in eine Grafik umzuwandeln.

Code:
<?php
    include_once 'MinecraftServerStatus/status.class.php';
    $status = new MinecraftServerStatus();
    $response = $status->getStatus('184.164.133.34');
    
    if(!$response)
    {
       $image = imagecreatetruecolor(150,50);
       $red = imagecolorallocate ($image, 255, 0, 0 );
       imageFill($image, $red, 0, 0);
       $white = imagecolorallocate ($image, 255, 255, 255 );
       // Hier mit der den X- und Y-Koordinaten experimetieren, bis es passt.
       ImageTTFText ($image, 20, 0, 10, 20, $white, "arial.ttf", "Der Server ist Offline.");
    }
    else
    {
       $image = imagecreatetruecolor(150,140);
       $red = imagecolorallocate ($image, 255, 0, 0 );
       imageFill($image, $red, 0, 0);
       $white = imagecolorallocate ($image, 255, 255, 255 );

       ImageTTFText ($image, 20, 0, 10, 20, $white, "arial.ttf", "Name: " . $response['motd']);
       ImageTTFText ($image, 20, 0, 10, 40, $white, "arial.ttf", "IP: " . $response['hostname']);
       ImageTTFText ($image, 20, 0, 10, 60, $white, "arial.ttf", "Version: " . $response['version']);
       ImageTTFText ($image, 20, 0, 10, 80, $white, "arial.ttf", "Spieler: " .$response['players'] . "/" . $response['maxplayers']);
       ImageTTFText ($image, 20, 0, 10, 100, $white, "arial.ttf", "Ping: " .$response['ping'] . " ms.");
    }

    header('Content-Type: image/jpeg');
   imagejpeg($image, NULL, 80);
   ImageDestroy($image);
?>
Das Resultat des Versuches:

Die Statistik in Text Version (Diese Statistik funktioniert so wie sie sein sollte.): http://kayjaypp.pfweb.eu/example.php
 
Ist nicht immer ganz einfach so zu debuggen. Aber da ein Fehler im Script ist, solltest du mal die Headerzeile auskommentieren und dann die Grafik nochmals anschauen. Es wird zwar keine Grafik erstellt, dafür sollte aber die Fehlermeldung sichtbar sein.

ggf. die imagejpeg ebenfalls auskommentieren.

Nachtrag:
Schmeiss auch mal noch das folgende oben in den Code (nach dem Debuggen wieder entfernen)
PHP:
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
Ist nicht immer ganz einfach so zu debuggen. Aber da ein Fehler im Script ist, solltest du mal die Headerzeile auskommentieren und dann die Grafik nochmals anschauen. Es wird zwar keine Grafik erstellt, dafür sollte aber die Fehlermeldung sichtbar sein.

ggf. die imagejpeg ebenfalls auskommentieren.

Nachtrag:
Schmeiss auch mal noch das folgende oben in den Code (nach dem Debuggen wieder entfernen)
PHP:
error_reporting(E_ALL);
ini_set('display_errors', 1);

Ist gemacht.

Oder mal den Pfad zur verwendeten Schriftart richtig angeben!?
Die Schriftart ist im selben Verzeichnis wie das Script



Code:
<?php
	error_reporting(E_ALL);
	ini_set('display_errors', 1); 
	
	include_once 'MinecraftServerStatus/status.class.php';
	$status = new MinecraftServerStatus();
	$response = $status->getStatus('184.164.133.34');
    
    if(!$response)
    {
       // Hier mit der Breite und Höehe experimetieren, bis es passt.
       $image = imagecreatetruecolor(150,50);
       $red = imagecolorallocate ($image, 255, 0, 0 );
       imageFill($image, $red, 0, 0);
       $white = imagecolorallocate ($image, 255, 255, 255 );
       // Hier mit der den X- und Y-Koordinaten experimetieren, bis es passt.
       ImageTTFText ($image, 20, 0, 10, 20, $white, "arial.ttf", "Der Server ist Offline.");
    }
    else
    {
       // Hier mit der Breite und Höehe experimetieren, bis es passt.
       $image = imagecreatetruecolor(150,140);
       $red = imagecolorallocate ($image, 255, 0, 0 );
       imageFill($image, $red, 0, 0);
       $white = imagecolorallocate ($image, 255, 255, 255 );
       // Hier mit der den X- und Y-Koordinaten experimetieren, bis es passt.
       ImageTTFText ($image, 20, 0, 10, 20, $white, "arial.ttf", "Name: " . $response['motd']);
       ImageTTFText ($image, 20, 0, 10, 40, $white, "arial.ttf", "IP: " . $response['hostname']);
       ImageTTFText ($image, 20, 0, 10, 60, $white, "arial.ttf", "Version: " . $response['version']);
       ImageTTFText ($image, 20, 0, 10, 80, $white, "arial.ttf", "Spieler: " .$response['players'] . "/" . $response['maxplayers']);
       ImageTTFText ($image, 20, 0, 10, 100, $white, "arial.ttf", "Ping: " .$response['ping'] . " ms.");
    }

#header('Content-Type: image/jpeg');
#imagejpeg($image, NULL, 80);
ImageDestroy($image);
?>
 
Zuletzt bearbeitet:
PHP:
$response = $status->getStatus('184.164.133.34');

Und du bist sicher das diese IP richtig ist?
 
Zurück