ImageCreate

saila

Erfahrenes Mitglied
Hi,

folgender Code:

PHP:
<?php
// Dateiname "bild_datei.php"
header("Content-type: image/png");

$pics_color_array = array('#004477'=>'0,69,119','#0069B3'=>'0,105,170','#002F55'=>'0,47,85','#EE9C00'=>'238,156,0','#E7651A'=>'231,101,26','#FFAEAE'=>'255,174,174','#FF0000'=>'255,0,0','#DF0029'=>'223,0,41','#6C000E'=>'108,0,14','#00B03B'=>'0,176,59','#89CA9D'=>'137,202,157','#004B2C'=>'0,75,44','#E2007F'=>'226,0,127','#F4A0BD'=>'244,160,189','#9B115B'=>'155,17,91','#66097B'=>'102,9,123','#4650A1'=>'70,80,161','#766455'=>'118,100,85','#CBB99C'=>'203,185,156','#52443C'=>'82,68,60','#EED2A7'=>'238,210,167','#737373'=>'115,115,115','#BFBFBF'=>'191,191,191','#4D4D4D'=>'77,77,77','#FFFFFF'=>'255,255,255','#000000'=>'0,0,0');

foreach($pics_color_array AS $pc_col => $colorss) { 
	if($web_color_pic_view == $pc_col) { 
		$one = explode(",", $colorss);
		$bona = $one[0]; $bonb = $one[1]; $bonc = $one[2];
	}
}
$Ga = imagecreate(20, 20);
$Hintergrundfarbe = imagecolorallocate($Ga, $bona, $bonb, $bonc);
imagestring($Ga);
imagepng($Ga); 
?>

wird in eine Funktion eingebunden. Diese Funktion enthält den Abschnitt:
PHP:
<?php
...
$web_color_pic_view = $farbe_aus_db;
echo "<img src=\"bild_datei.php\" width=\"25\" height=\"25\" alt=\"Bild\" />";
?>

Der Ablauf ist soweit korrekt.

Das Problem ist, die VAR "$web_color_pic_view" enthält eine Farbe, welche nicht erkannt wird. Statt dessen wird einfach nur die letzte Farbe des Array's ausgegeben -> schwarz.

Wo liegt der Fehler?
 
Es findet ja auch keinerlei Parameterübergabe statt.

Probier mal Folgendes:
PHP:
<?php

	// Dateiname "bild_datei.php"
	header('Content-Type: image/png');

	if( isset($_GET['color-value']) && preg_match('<#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})>i', trim($_GET['color-value']), $matches) ) {
		$im = imagecreate(20, 20);
		imagecolorallocate($im, hexdec($matches[1]), hexdec($matches[2]), hexdec($matches[3]));
		imagepng($im);
		imagedestroy($im);
		exit;
	}
	header('HTTP/1.1 400 Bad Request', true);
 
?>
PHP:
echo '<img src="bild_datei.php?color-value='.$farbe_aus_db.'" alt="" />';
 
Also das nicht.

Habe nun auch schon mehrere Varianten probiert und nüx.

:confused: :confused:

Bei Deiner Variante gibt es kein Ergebnis. Wenn ich bei meiner Variante ein $_REQUEST einbinde, gibt es wieder ein Bild mit der Farbe schwarz. Die Schleife läuft durch aber gibt nicht das gesuchte zurück.

:confused: :confused:
 
Mein Gedanke war der, dass die dezimalen Farbwerte aus den hexadezimalen errechnet werden, statt sie anhand einer „Vergleichstabelle“ umzuformen. Übrigens meine ich, dass noch ein paar Parameter bei der imagestring()-Funktion gesetzt werden müssten.
 
Gumbo hat gesagt.:
Mein Gedanke war der, dass die dezimalen Farbwerte aus den hexadezimalen errechnet werden, statt sie anhand einer „Vergleichstabelle“ umzuformen. Übrigens meine ich, dass noch ein paar Parameter bei der imagestring()-Funktion gesetzt werden müssten.

Es geht nich darum, eine Schrift einzubinden, sondern einfach nur die Farbe anzuzeigen. Deshalb lasse ich ImageString() aussen vor.

Mal sehen, wenn ich weis wie, teile ich es mit. Es sei denn, es hat noch jemand eine Idee, wie das Problem zu lösen ist.
 
Also bei mir funktioniert mein Vorschlag wunderbar. Welchen Testwert übergibst du denn dem Skript?
 
es ist eine function die aufgerufen wird.

in die funktion werden die Farbwerte übergeben per Variable. Diese Farbwertvariablen sind dann ausschlaggebend für die Farberstellung.

Ich bekomme immer nur schwarz. :(
 
Zurück