Archiv verlassen und diese Seite im Standarddesign anzeigen : [GD] Text Farbe ist Transparent anstatt Farbe
Hallo,
mein Text in meiner grafik wird nicht grün dagestellt sondern Transparent, finde den Fehler nicht:
<?PHP
header('Content-type: image/png');
$mysqlcon = mysql_connect('85.114.140.22', 'laire', 'muhaha')
or die ('SQL-Verbindung fehlgeschlagen');
$dbcon = mysql_select_db("cod4", $mysqlcon) ;
$abfrage = mysql_query
("SELECT * FROM t1_cod4_v3_players WHERE players_id = '$id' ");
$row = mysql_fetch_array($abfrage);
$imgname = 'waffen_profil.gif';
$im = @ImageCreateFromGIF ($imgname);
$green = ImageColorAllocate ($im, 0, 255, 50);
imagestring ($im, 5, 220, 430, $row[players_k_w_colt45], $green);
imagestring ($im, 5, 220, 465, $row[players_k_w_deserteagle], $green);
imagestring ($im, 5, 420, 45, $row[players_k_w_deserteaglegold], $green);
imagestring ($im, 5, 30, 45, $row[players_k_w_m16], $green);
ImagePNG ($im);
?>
Woran kann das liegen? Also die Text Farbe sollte doch grün sein....
Hier ein Link zu der Grafik, wo der Text grün sein sollte:
http://www.gilligans-island.de/images/gdlib/1weap.png
Enthalten die Variablen auch garantiert was? Testausgabe?
Hm weiß nicht genau was du meinst.
Also ein print_r von green gibt mir -1 aus
print_r von $im gibt mir Resource id #5 aus
Er macht ja auch alles, nur das er komischerweise die blöde Farbe nicht annehmen will :-(
Ob z.B. $row[players_k_w_colt45] was enthält, war die Frage!!
Weil du kannst nicht am Bild entscheiden, ob etwas unsichtbar ist, oder überhaupt nicht da.
Es gilt: (im übertragenwen Sinne)
unsichtbar == nicht_vorhanden (für deine Augen)
unsichtbar !== nicht_vorhanden (in der Logik)
Die Zeilen sind gefüllt, siehe den Link den ich oben schon gepostet habe:
http://www.gilligans-island.de/images/gdlib/1weap.png
Wenn man die Datei aufruft, sehen die Zahlen weiß aus, in wirklichkeit sind sie transparent, was man merkt wenn man das Bild auf der Hauptseite aufruft:
http://gilligans-island.de/index.php?include=player&id=1&lang=de
Bei den Zahlen sieht man den Hintergrund (das Gitter) durchscheinen.
Somit kann ich wohl doch sagen, die Zeichen sind "unsichtbar" also Transparent ;-)
Dann lege doch, vor den mal Arbeiten, eine andere transparente Farbe fest. z.B. rot
Es darf nur eine geben.
evtl. ist in dem Gif ja schon grün dafür vorgesehen..
Somit kann ich wohl doch sagen, die Zeichen sind "unsichtbar" also Transparent ;-)
Du evtl. schon
Aber für uns gab es KEINE Vergleichsmöglichkeit!!
Woher sollten wir auch ahnen, dass du mit 4 Zeilen ca 30 Zahlen malen kannst :D
Was in dem Gif festgelgt ist weiß ich nicht, aber ich habe es schon mit verschiedenen Werten bei dem Color Accolate versucht... also 255,255,255 oder 0,0,0 aber es sieht immer so aus wie jetzt...
Die ganzen Zahlen sind heute Nacht dazu gekommen, war ja nicht untätig ;-)
Es wurde ja niergends eine Transparente Farbe fest gelegt...
Dann mache das doch mal...
So schwer zu verstehen?
Habe eine Transparente Farbe festgelegt, ich hoffe das ist so richtig.
Jetzt ist die Tranzparenz des Bildes weg, der Text ist immer noch transparent, obwohl die RGB Werte Grün sind.
<?PHP
header('Content-type: image/png');
$mysqlcon = mysql_connect('85.114.140.22', 'laire', 'muhaha')
or die ('SQL-Verbindung fehlgeschlagen');
$dbcon = mysql_select_db("cod4", $mysqlcon) ;
$abfrage = mysql_query
("SELECT * FROM t1_cod4_v3_players WHERE players_id = '$id' ");
$row = mysql_fetch_array($abfrage);
$imgname = 'waffen_profil.gif';
$im = @ImageCreateFromGIF ($imgname);
$trans=ImageColorAllocate($im, 200, 200, 200);
imagecolortransparent($im, $trans);
$green=ImageColorAllocate($im, 0, 255, 50);
if($row[players_k_w_m16] != '0')
{
imagestring ($im, 3, 30, 45, $row[players_k_w_m16], $green);
}
else
{
imagestring ($im, 3, 30, 45, '-', $green);
}
ImagePNG ($im);
?>
Tja... dann kann ich hier nur aufgeben..
Schade :-( Ich gehe das Script ständig durch und finde einfach keinen Fehler :-(
schalt mal error_reporting an und schreib niemals @ vor einer Zeile!
Dann versuch mal einen String direkt zu schreiben statt aus der DB.
Dann erstelle mal zwei Farben:
$green = ImageColorAllocate ($im, 0, 255, 50);
$x = ImageColorAllocate ($im, 255, 67, 50);
Schreib einen String mit der Farbe x an 30, 30 und mit der Farbe green an 30, 50imagestring ($im, 5, 30, 50, "Hallo", $green);
imagestring ($im, 5, 30, 30, "Hallo", $x);
Wenn du jetzt immer noch nichts siehst und keine Fehler erhältst von error_reporting(E_ALL); liegt es an deiner internen Schriftart. Ändere die 5 in 1,2,3 oder 4 oder lade eine Schriftart auf deinen Server und versuchs mit der.
Ok erstmal ohne Schriftart, die muss ich noch hochladen, die anderen Tips haben nichts gebracht, Text ist immer noch transparent, wirkt als wenn er den text aus dem bild auschneiden würde...
<?PHP
header('Content-type: image/png');
error_reporting(E_ALL);
$imgname = 'waffen_profil.gif';
$im = ImageCreateFromGIF ($imgname);
$green = ImageColorAllocate ($im, 0, 255, 50);
$x = ImageColorAllocate ($im, 255, 67, 50);
imagestring ($im, 5, 30, 50, "Hallo", $green);
imagestring ($im, 5, 30, 30, "Hallo", $x);
ImagePNG ($im);
?>
Haben jetzt das ganze auf umwegen gelösst, ich gehe mal davon aus, das in der gif datei alle farbwerte die nicht verwendet wurden als tranzparent gespeichert sind.
Diese Einstellungen werden wohl übernommen...
als Lösung wurde die Farbe mit in der Farbpalette des Gif Bildes angelegt, das hat gereicht um den Text jetzt in Farbe dazustellen.
Nur noch als Ergänzung zu einem deiner Posts oben... habe ich erst nicht gesehen.
Weil bei gif- Dateien mit Paletten arbeitet, die maximal 256 Farben beinhalten dürfen hattest du eine Ausgabe von -1 bei deinem print_r. (-1 für gescheitert)
Du hast schon zu viele verschiedene Farben in deinem Bild und deshalb konnte keine neue Farbe allokiert werden.
Also bleiben dir 2 Möglichkeiten. Die eine, wie du es gemacht hast eine bereits verwendete Farbe benutzen oder du reduzierst die benutzten Farben im ganzen Bild um eine und kannst danach ohne Probleme wieder eine neue Farbe mit PHP allokieren.
Bei TIF oder PNG Bildern hast du dieses Problem nicht.
|
-
- |