Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[GD] Text Farbe ist Transparent anstatt Farbe [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[GD] Text Farbe ist Transparent anstatt Farbe


 
Laire
05-06-2008, 00:41 
 
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

 
pekka
05-06-2008, 00:53 
 
Enthalten die Variablen auch garantiert was? Testausgabe?

 
Laire
05-06-2008, 10:58 
 
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 :-(

 
combie
05-06-2008, 11:01 
 
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)

 
Laire
05-06-2008, 11:07 
 
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 ;-)

 
combie
05-06-2008, 11:11 
 
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

 
Laire
05-06-2008, 11:13 
 
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 ;-)

 
combie
05-06-2008, 11:14 
 
Es wurde ja niergends eine Transparente Farbe fest gelegt...
Dann mache das doch mal...
So schwer zu verstehen?

 
Laire
05-06-2008, 11:56 
 
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);

?>

 
combie
05-06-2008, 12:15 
 
Tja... dann kann ich hier nur aufgeben..

 
Laire
05-06-2008, 12:17 
 
Schade :-( Ich gehe das Script ständig durch und finde einfach keinen Fehler :-(

 
jmc
05-06-2008, 13:13 
 
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.

 
Laire
05-06-2008, 14:05 
 
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);

?>

 
Laire
05-06-2008, 14:31 
 
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.

 
jmc
05-06-2008, 17:42 
 
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.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:04 Uhr.