"Johan" <tcr480@ofir.dk> skrev i en meddelelse news:9piutc$o2d$1@sunsite.dk...
> >På min siger phpinfo() at GD er installeret, men det virker bare ikke (som
> i: Den genererer ikke billeder)
> Hmmm, vis et kodeeksempel! Min virker fint! Får du nogle fejlmeddelelser?
Ja, jeg har ENDELIG fundet ud af hvorfor - eller nærmere hvordan jeg kan fjerne symptomerne:
Det viser sig at der ikke er noget galt med hele GD men med ImageTTFText: Efter at have forsimplet meget (fjernet gif/png-autodetect) og sat headeren som det aller sidste før output ser koden således ud:
========
<?php
if(!isset($text))
$text = "Test: æøåÆØÅ";
$size=18;
$x=55;
$y=22;
// Use PNG:
$im = imageCreateFromPNG("button1.png");
$color = ImageColorAllocate($im, 255, 255, 255);
ImageTTFText ($im, $size, 0, $x, $y, $color, 'ARLRDBD.TTF', $text);
Header("Content-type: image/png");
ImagePNG($im);
ImageDestroy($im);
?>
========
Linien med ImageTTFText(...) gav en warning om at TTF-filen ikke kunne findes, hvilket var nonsens.
Men da jeg havde cut'n'pasted fra manualen stod header-outputtet øverst, og dermed blev Warning'en ikke set, men ødelagde selvfølgelig i stedet det som skulle have været en PNG-stream!
Jeg ved ikke hvad der er galt med den binary distribution jeg downloadede fra php.net, men en opgradering til php v1.0.8-dev løste problemet: Det var den "latest build" fra
www.php4win.de som Henrik Hansen henviste mig til (tak for det :).
Bare lidt trist at jeg skal køre en beta-version for at få det til at virke... Men jeg har flere gange oplevet at PHP ikke er så professionelt som jeg havde håbet, hvilket ærgrer mig da jeg klart går ind for OpenSource/GPL sammenlignet med M$.
(Jeg tænker bla. på at de ændrer definitioner af funktioner såsom nl2br() uden at tænke på bagudkompatibiltet, at GD lige pludselig skriver TTF-fonte meget større end tidligere osv. osv.)
Grunden til at nøjagtigt det samme virker både på
www.whitehat.dk og
www.uni2.dk som begge kører php v1.0.6 kan enten være at det er Linux og ikke Windows, eller at de kører med en ældre GD-version: php.net's windows-distribution indeholdt GD v2.0, mens de to nævnte servere af en eller anden grund bruger v1.6.2 begge to!
Men distributionen fra php4win.de indeholder begge, og de virker begge!
Men jeg er ret clueless med hvorfor det opfører sig som beskrevet - især hvis det virker hos andre med Windows og php v1.0.6 med GD v2.0!
--
Mvh. Mogens,
www.momech.dk