gd library unter xampp

Alles, was PHP betrifft, kann hier besprochen werden.

gd library unter xampp

Postby desmond76 » 23. November 2004 12:05

Hi,

ich habe Probleme bei der Nutzung von der gd lib:

die phpinfo() gibt mir unter Configure Command folgenden Eintrag:

cscript /nologo configure.js "--enable-snapshot-build" "--with-gd=shared"

Zudem sehe ich weiter unten, daß

GD Support enabled ist (Version 2.0.28 compatible)

Wenn ich unter /localhost/xampp unter den Demos das Instant Art aufrufe, funktioniert dies auch. Aber wenn ich eine Funktion erstelle, die gd nutzt, bekomme ich nur Buchstabenwirrwarr oder leere Seiten. Ich habe z.B. probiert, die Beispiele in dem folgenden heise-Artikel zum Laufen zu bringen

<URL>http://www.heise.de/ix/artikel/2002/05/078/</URL>

Leider Fehlanzeige.

Ich habe xampp standardmäßig installiert (ohne besondere Einstellungen) und bin einfach davon ausgegangen, daß damit auch die Grafikfunktionen laufen würden. Bin ich da auf dem Holzweg?

Für Anregungen dankbar
[url][/url]
Grüße
desmond

-------------------------------------
WERBEFLÄCHE ZU VERMIETEN
-------------------------------------
desmond76
 
Posts: 7
Joined: 23. November 2004 11:32

Postby Wiedmann » 23. November 2004 15:32

Hast du einen Beispielcode?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby PF4 » 23. November 2004 16:50

Bei allen Beispielen wird vergessen den Header zu senden

header("Content-Type: image/IMAGETYP");
PF4
 
Posts: 528
Joined: 10. March 2003 09:15

Postby desmond76 » 24. November 2004 09:22

Hallo,

erste Hürde habe ich genommen: ich habe den Code in eine HTML-Seite integriert. Damit hat es nicht gefunzt (warum eigentlich?).

Header war übrigens dabei. Hier ein Beispiel-Code:
Code: Select all
header ("Content-type: image/png");
$mein_bild = ImageCreate (300, 150);
$blau = ImageColorAllocate ($mein_bild, 21, 0, 177);
$gruen = ImageColorAllocate ($mein_bild, 50,148,0);
$rot = ImageColorAllocate ($mein_bild, 255,0,25);
$hellblau = ImageColorAllocate ($mein_bild,0,255,242);
imageFilledRectangle($mein_bild,20,20,280,130,$blau);
imagearc($mein_bild,150,75,50,50,0,360,$rot);
imageline($mein_bild,0,0,300,150,$hellblau);
imagedashedline($mein_bild,0,150,300,0,$hellblau);
$polygon_werte=array(20,130,50,110,70,90,90,50,110,100,120,150);
imagepolygon($mein_bild,$polygon_werte,6,$hellblau);
ImageString ($mein_bild, 10, 22, 5, "Was würde Picasso dazu sagen", $gruen);
ImagePNG ($mein_bild);
?>

So, die kryptischen Zeichen verschwinden jetzt, dafür sehe ich jetzt ein rotes Kreuz (also irgendwie wie der Platzhalter für eine Grafik, aber eben nicht die Grafik).

Wiederum dankbar für Tipps / Anregungen...
Grüße
desmond

-------------------------------------
WERBEFLÄCHE ZU VERMIETEN
-------------------------------------
desmond76
 
Posts: 7
Joined: 23. November 2004 11:32

Postby PF4 » 24. November 2004 09:57

Hast du das Bild mit <img src.... oder
in den Quelltext eines html/php dokumentes kopiert?

In dem Bild werden noch fehler sein
PF4
 
Posts: 528
Joined: 10. March 2003 09:15

Postby desmond76 » 24. November 2004 10:44

der ganze Code war in ein HTML-Dokument eingebettet.

Bin mittlerweile einen Schritt weiter, aber auch noch nicht schlauer: ich habe das erzeugte Bild in eine Datei ausgeben lassen.

( letzte Zeile ändern in: ImagePNG ($mein_bild,"meinBild.png");


Jetzt der Knüller: Schaue ich das erzeugte Bild an, ist es sichtbar. Ich kann das Bild sowohl mit Photo-Editor, wie auch mit dem Browser (IE) betrachten. Ich dachte nämlich schon, dass der Browser die Einschränkung wäre, ist aber demnach nicht so...

rätselratend
Grüße
desmond

-------------------------------------
WERBEFLÄCHE ZU VERMIETEN
-------------------------------------
desmond76
 
Posts: 7
Joined: 23. November 2004 11:32

Postby PF4 » 24. November 2004 10:52

Ganz klare Regel vor dem header befehl darfst du garnix ausgeben also auch kein HTML.
Nach dem BildHeader nurnoch Bilddaten.

d.h
Du must das Script in eine extra Datei packen und via <img src=bla.php> einbinden.
PF4
 
Posts: 528
Joined: 10. March 2003 09:15

Postby desmond76 » 24. November 2004 11:08

das klappt bei mir nicht.

Zum Verständnis: die php-Datei hat jetzt nur noch die php-Daten, kein html mehr, vor dem Header (header ("Content-type: image/png"); steht jetzt nur noch der php-Tag "<?php".

In einer neuen Datei - jetzt html rufe ich via <img src=php-Datei> eben diese Datei auf, wiederum erscheint nur das rote Kreuz. Wenn ich alternativ in der html-Datei ein fertiges Bild aufrufe, klappt das.

Wo ist mein Denkfehler?
Grüße
desmond

-------------------------------------
WERBEFLÄCHE ZU VERMIETEN
-------------------------------------
desmond76
 
Posts: 7
Joined: 23. November 2004 11:32

Postby PF4 » 24. November 2004 11:20

Schreibe alle Scripte und HTML Dateien die hier beteiligt sind hier rein
PF4
 
Posts: 528
Joined: 10. March 2003 09:15

Postby desmond76 » 24. November 2004 11:26

ok, hier die html-Datei, die die php-Datei aufruft:
Code: Select all
<html><head></head>
<body>
<img src="gdtest.php" alt="klappt nicht">
</body>
</html>

und hier noch die php-Datei "gdtest.php":
Code: Select all
<?php
header ("Content-type: image/png");
$mein_bild = ImageCreate (300, 150);
$blau = ImageColorAllocate ($mein_bild, 21, 0, 177);
$gruen = ImageColorAllocate ($mein_bild, 50,148,0);
$rot = ImageColorAllocate ($mein_bild, 255,0,25);
$hellblau = ImageColorAllocate ($mein_bild,0,255,242);
imageFilledRectangle($mein_bild,20,20,280,130,$blau);
imagearc($mein_bild,150,75,50,50,0,360,$rot);
imageline($mein_bild,0,0,300,150,$hellblau);
imagedashedline($mein_bild,0,150,300,0,$hellblau);
$polygon_werte=array(20,130,50,110,70,90,90,50,110,100,120,150);
imagepolygon($mein_bild,$polygon_werte,6,$hellblau);
ImageString ($mein_bild, 10, 22, 5, "Was würde Picasso dazu sagen", $gruen);
ImagePNG ($mein_bild);
?>

hth
Grüße
desmond

-------------------------------------
WERBEFLÄCHE ZU VERMIETEN
-------------------------------------
desmond76
 
Posts: 7
Joined: 23. November 2004 11:32

Postby desmond76 » 24. November 2004 11:58

Merkwürdig,

da ich unter Win2k arbeite, dachte ich, daß es vielleicht Probleme deswegen gibt. Logge mich deshalb als User aus, dann als Admin ein starte Apache neu (bzw. xampp) -- schwupp gd-Funktion funktioniert, ich sehe das Bild, sowohl wenn ich die php-Datei direkt aufrufe, wie auch als Tag-Aufruf in einer html-Datei.

Ok, dann logge ich mich wieder als Admin aus, und als User ein -- schwupp, es funktioniert immer noch!!!

Dieselbe Problematik behandle ich seit 3 Tagen, und mir nichts Dir nichts soll es auf einmal funzen? Ich raffs nicht.

Danke auf jeden Fall für die Hilfe ;-)
Grüße
desmond

-------------------------------------
WERBEFLÄCHE ZU VERMIETEN
-------------------------------------
desmond76
 
Posts: 7
Joined: 23. November 2004 11:32

Platzhalter statt PHP Bild

Postby katze » 16. July 2005 18:56

Hallo,
ich bin neu im Forum und hatte mit dem neuen XAMPP auch obiges Problem. Nachdem ich den ursprünglich aus dem Netz gezogenen Quelltext in einer neuen Datei abgeschrieben hatte, funktionierte es. Das Kopieren des neuen, geschriebenen Textes in die alte Datei brachte kein positives Ergebnis, obwohl beide Dateien optisch im Editor gleich waren. Eventuell ein Problem der Zeichensätze oder Schmutzzeichen....??
MfG
Katze
katze
 
Posts: 4
Joined: 16. July 2005 11:15
Location: Stahnsdorf

Postby jakimo72 » 17. July 2005 01:38

Bei Bildern erstellt mit GD ist darauf zu achten,
dass for dem "<?php" kein Zeichen stehen darf, nicht einmal eine
Leerzeile oder ein Leerzeichen.

Als allererste Anweisung sollte
"header ("Content-type: image/png");"
stehen (Bei JPG oder Gif-Gildern anpassen!).

Nach dem abschließenden "?>" sollte auch kein weiteres Zeichen
stehen (ist aber meistens unkritisch).

Fehlermeldungen á la
"echo('Fehlermeldung');"
sind ausgesprochen kontraproduktiv, da Sie mitten
in den Sourcecode des Bildes hineingeschrieben werden...

Jegliche Testausgaben so wie
"print_r($_SESSION)"
sind zu unterbleiben.

Die Sourcedatei darf nicht 16bit-Unicode abgespeichert werden!
User avatar
jakimo72
 
Posts: 151
Joined: 07. February 2005 13:25
Location: Hamburg-Barmbek


Return to PHP

Who is online

Users browsing this forum: No registered users and 40 guests