PHP 4.3.1 + GD 2.0 Problem!

Bash, Shell, PHP, Python, Perl, CGI
nils_eckert
Posts: 41
Joined: 2002-11-30 12:05

PHP 4.3.1 + GD 2.0 Problem!

Post by nils_eckert »

Tach auch,

ich schreibe gerade ein kleines süßes Skript :lol: das ich jede Minute per Cron aufrufe und mir dann das Ping Ergebnis in eine Tabelle male (per GD-Lib)

Jedoch hört das dumme ding nach knapp 2 Stunden immer auf.

Also das Skript läuft noch, die Ergebnisse kommen noch in die Log-Datei, das Bild wird auch immer wieder geschrieben (Modify-Time) aber es ändert sich nix mehr!

Ich habe auch nicht das imagedestroy am Ende vergessen!

Das Programm ist auch keine Endlosschleife, sondern wird Minütlich via Cron aufgerufen und terminiert auch anständig!

Hat wer ne Idee? Gibt's bei GD irgendwelche Einschränkungen?

Folgendes benutze ich zum Malen :lol:

Code: Select all

imagefilledrectangle($log_pic,$x,$y,$x+13,$y+9, $farbe_log); 
	
imagestring ($log_pic, 1,$x+2, $y+1, $ping, $farbe_weiss);

imagepng($log_pic, date("Y-m-d").".png");

imagedestroy($log_pic);
Komischer Weise ist die Schriftfarbe im letzten Kästchen, das noch gemalt wurde auch schwarz und nicht weiß?? Also der imagestring :?

Gruß,

Nils
nils_eckert
Posts: 41
Joined: 2002-11-30 12:05

Re: PHP 4.3.1 + GD 2.0 Problem!

Post by nils_eckert »

Ich habe mir jetzt selber geholfen.

Das Problem war, dass ein und die selbe Farbe bei jedem Aufruf neu hinzugefügt wurde, so dass irgendwann die 8 Bit, also 256 Farben benutzt waren.

Leider gibt es keine Funktion die die Farbe nur dann neu anlegt, wenn Sie noch nicht existiert (wenn das nicht stimmt möge man mich korrigieren :lol:).

Ich habe mir jetzt so geholfen, dass ich eine Funktion imagecolorreallocate geschrieben habe, die nur dann die Farbe neu anlegt, wenn Sie noch nicht existiert.

Code: Select all

function imagecolorreallocate ($image, $r, $g, $b) {
	$color = imagecolorexact($image, $r, $g, $b);

	if ($color == -1) 
		$color = imagecolorreallocate($image, $r, $g, $b);

	return $color;
}
Falls es wem was bringt!


Gruß,

Nils