B
Bgag
Guten Abend!
Ich bin gerade dabei eine kleine Klasse zu scripten, diemir ein Diagramm via PHP ausgibt. Damit möchte ich dann später meine Counterstatistiken übersichtlicher und vorallem ansehnlicher gestalten. Soweit alles ok. Jedoch habe ich in dieser Klasse auch eine Methode hexToRgb gecoded, die Hex-Farbcode in RGB umrechnen soll und das ergebnis durch Kommas trennt, sodass dieser von den imagefunktionen von PHP genutzt werden kann. Funktioniert alles wunderbar, jedoch wenn ich nun inerhalb der Klasse diese Methode aufrufe um verschiedene Farben festzulegen, wirft er mir folgenden Fehler aus:
Wenn ich mir den Aufruf der hexToRgb-Methode ausgeben lasse, wenn ich ihr #FFFFFF übergeben habe erhalte ich:
Die Methode hexToRgb:
Der Aufruf in der Klasse:
Ich wäre euch für eure Hilfe sehr dankbar bin grad so leicht am verzweifeln.
MfG, Andy
Ich bin gerade dabei eine kleine Klasse zu scripten, diemir ein Diagramm via PHP ausgibt. Damit möchte ich dann später meine Counterstatistiken übersichtlicher und vorallem ansehnlicher gestalten. Soweit alles ok. Jedoch habe ich in dieser Klasse auch eine Methode hexToRgb gecoded, die Hex-Farbcode in RGB umrechnen soll und das ergebnis durch Kommas trennt, sodass dieser von den imagefunktionen von PHP genutzt werden kann. Funktioniert alles wunderbar, jedoch wenn ich nun inerhalb der Klasse diese Methode aufrufe um verschiedene Farben festzulegen, wirft er mir folgenden Fehler aus:
Code:
Warning: Wrong parameter count for imagecolorallocate() in /home/www/web193/html/ChartCreator.php on line 159
Code:
255, 255, 255
PHP:
/**
* Converts hexacode to rgbcode
*
* @name ChartCreator::hexToRgb()
* @access public
* @param String $hex
* @return boolean
*/
public function hexToRgb($hex)
{
trim($hex);
$hex = str_replace('#','', $hex);
if (strlen($hex) == 6)
{
$return['r'] = hexdec(substr($hex, 0, 2));
$return['g'] = hexdec(substr($hex, 2, 2));
$return['b'] = hexdec(substr($hex, 4, 2));
$return = strtoupper(implode(", ", $return));
}
else if (strlen($hex) == 3)
{
$return['r'] = hexdec(substr($hex, 0, 1));
$return['g'] = hexdec(substr($hex, 1, 1));
$return['b'] = hexdec(substr($hex, 2, 1));
$return = strtoupper(implode(", ", $return));
}
else
{
$return = false;
}
return $return;
}
PHP:
/**
* Creates the image for the chart and the different colors
* the background of the image is filled
*
* @name ChartCreator::createImage()
* @access public
* @return boolean
*/
public function createImage()
{
$this->image = imagecreatetruecolor($this->width, $this->height);
$this->dataBgColor = '#ffffff';
$this->bgColor = imagecolorallocate($this->image, 123, 2, 32); // funktioniert
$this->dataBgColor = imagecolorallocate($this->image, $this->hexToRgb($this->dataBgColor)); // funktioniert nicht!
return true;
}
MfG, Andy