| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

05-06-2008, 00:41
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
[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-Code:
<?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
|

05-06-2008, 00:53
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Enthalten die Variablen auch garantiert was? Testausgabe?
|

05-06-2008, 10:58
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
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 :-(
|

05-06-2008, 11:01
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
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)
|

05-06-2008, 11:07
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
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...r&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 ;-)
|

05-06-2008, 11:11
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
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..
Zitat:
|
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
Geändert von combie (05-06-2008 um 11:13 Uhr)
|

05-06-2008, 11:13
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
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 ;-)
Geändert von Laire (05-06-2008 um 11:15 Uhr)
|

05-06-2008, 11:14
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Zitat:
|
Es wurde ja niergends eine Transparente Farbe fest gelegt...
|
Dann mache das doch mal...
So schwer zu verstehen?
|

05-06-2008, 11:56
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
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-Code:
<?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);
?>
|

05-06-2008, 12:15
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Tja... dann kann ich hier nur aufgeben..
|

05-06-2008, 12:17
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
Schade :-( Ich gehe das Script ständig durch und finde einfach keinen Fehler :-(
|

05-06-2008, 13:13
|
|
jmc
PHP Junior
|
|
Registriert seit: Mar 2006
Beiträge: 868
|
|
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, 50
PHP-Code:
imagestring ($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.
|

05-06-2008, 14:05
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
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-Code:
<?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);
?>
|

05-06-2008, 14:31
|
|
Laire
Registrierter Benutzer
|
|
Registriert seit: May 2004
Beiträge: 741
|
|
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.
|

05-06-2008, 17:42
|
|
jmc
PHP Junior
|
|
Registriert seit: Mar 2006
Beiträge: 868
|
|
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.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|