[PHP] GD library

Pagina: 1
Acties:

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
Beste devvers,

ik probeer op mijn xitami(lame) servertje php4.1.1 te draaien.
Php zelf werkt goed, maar ik kan geen GD libs gebruiken.
Ik heb de GD2 library al gedownload en in php.ini de regel aangepast..

Nou krijg ik in mijn html file nog steeds alleen maar een kruisje te zien...

Waar wordt dit door veroorzaakt?

ik heb gesearched btw.

Verwijderd

Geef de lieve mensjes wat meer info dan "HIJ GEEFT EEN KRUISJE WEER!! OMG!!!!" :)

gooi de url vd image in de adresbalk en bekijk de source, wat verschijnt er... Foutmeldingen! yay!
(maar er verschijnt niet veel als je de errors weergeven uit hebt staan in php btw :P)

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

misschien vergeten/onjuiste header (); meeverstuurd?
check iig even met phpinfo (); of lib gd uberhaupt functioneert.

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
ok foutmelding:

Fatal error: Call to undefined function: imagecreate()

bedoeling van het geheel: een icon creeeren met stats erin etc
of is dit een cgi script of maakt het nix uit?

Verwijderd

Op maandag 11 februari 2002 02:30 schreef insan1ty het volgende:
ok foutmelding:

Fatal error: Call to undefined function: imagecreate()

bedoeling van het geheel: een icon creeeren met stats erin etc
of is dit een cgi script of maakt het nix uit?
je doel is geheel onbelangrijk als je de errors niet kan wegwerken... je algorithme waarmee je je doel wilt bereiken moet je zelf uitzoeken :)

imagecreate() bestaat dus niet volgens hem, en volgens mij ook niet :) ik zie in de Documentatie dat iig gdImageCreate(sx, sy) bestaat... maar je kan gewoon beter even je source posten...



oehhhhh EditEditEdit.... :)

Schijnt dus dat imagecreate() wel bestaat, oftwel je GD doet et niet... En dat kan heel veel oorzaken hebben :P
hmmz, Xitami... cgi dus...
tja, op de een of andere manier zeker weten dat je de goede plugin voor PHP hebt en de php.ini goed hebt aangepast, en die in de goede directory staat...
Nou moet ik zeggen dat zelfs bij mijn Windows-Apache-Php combinatie GD gewoon weigerde te werken ook... Alleen op mn linuxbak doet ie et nu na een paar ingewikkelde configure en MAKE regeltjes :P

Ik zou bijna zeggen, geef et maar op :) maar ja, kheb gehoord dat et mogelijk is :P

Verwijderd

Ik had eerst ook die "ImageCreate" error, maar dat bleek eraan te liggen dat ik GD niet goed had meegecompiled. Die ImageSize ofzo zit standaard in PHP meegebakken, de rest van de functies niet. Ik weet alleen niet hoe je dat in een WIN32 omgeving goed moet laten functioneren, kan vast wel met DLL'etjes ofzo, maar op m'n FreeBSD bak moest ik de GD lib (en de sublibs zoals gzip, libpng enzo) meecompilen met PHP... Suc6

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
ik heb die dll shit enz wel maar ikkan er nix mee, maw het resultaat verandert gewoon niet, ik blijfgewoon zoiets zien:

Afbeeldingslocatie: http://bestaatnie.com/blaat.jpg (kruisje dus)

naja ik ga er een nachtje over slapen

Verwijderd

Op maandag 11 februari 2002 02:55 schreef insan1ty het volgende:
ik heb die dll shit enz wel maar ikkan er nix mee, maw het resultaat verandert gewoon niet, ik blijfgewoon zoiets zien:

[afbeelding] (kruisje dus)

naja ik ga er een nachtje over slapen
Een kruisje kan echt ALLES betekenen, als ik een [img]"blaat"[/img] doet waar blaat zelfs een werkende HTML pagina url van maak hij ook een kruisje van maakt... Je kan net zo goed een Syntax error maken in je php die de img genereert en dan krijg je ook een kruisje... het belangrijke deel is de error zelf, het bestand zelf dus, en niet een weergave van een browser...

En die foutmelding van dat ie imagecreate() niet kon vinden betekend dus dat GD niet goed geinstalled is in je PHP... Punt...

Verder moet iemand anders maar posten die dit probleem daadwerkelijk ook heeft opgelost...

Geef voor die persoontjes de GD-gerelateerde dingen in je php.ini door en locaties waar je gd-libs-dll-etc staan en wat die files dan zijn...

  • HGM
  • Registratie: April 2000
  • Niet online

HGM

Probeer anders eens een pakket wat standaard een juiste GD voor PHP config heeft, zoals www.php4win.de

Het lijkt mij dat je installatie gewoon niet goed is :)

Verwijderd

Nou moet ik zeggen dat zelfs bij mijn Windows-Apache-Php combinatie GD gewoon weigerde te werken ook... Alleen op mn linuxbak doet ie et nu na een paar ingewikkelde configure en MAKE regeltjes
Quistnetje, je bent dom :p :) Hihi! Maar dat wisten wel al (KUSJE!)... :p

Okay insan1ty, even een paar dingen:

a) heb je, na in php.ini de regel te hebben aangezet, de server overnieuw opgestart? Anders kan je het namelijk lekker vergeten, doet ie het nooit... ja, na een reboot :p

b) probleem van plaatjes is, als je een foutje hebt gemaakt in je code, je dat lekker niet ziet. Opzich vrij lastig. Oplossing, vrij simpel: header("Content-type: text/html");, voor aan je PHP file zetten, die aan laten tijdens debuggen, text/html vervangen door image/<jetypehier> als je het plaatje wil zien... zo zie je wanneer jij iets fout heb gedaan, en kan je er wat aan doen... ook een handige methode is via een dos promptje te zeggen:

php <jephpfilehier>

Dan krijg je ook foutjes te zien als er een fout zit, en een hoop binaire shit als hij werkt

c) het is VOLKOMEN overbotig een posting te doen van een Xje. IEDEREN hieroh begrijpt ECHT WEL wat je bedoelt.

d) het helpt een hoop als je hier je (kleine) source post, zodanig dat wij kunnen zien wat je fout doet, en of het aan het feit ligt of je GD wel of niet werkt (kan ik hier simpel testen door je source op mijn compje te draaien)...


Nou ja, hoop dat je het wat helpt...

Even ter informatie (het Quistnetje):
Ik heb GD draaiend op:

- Windows 98
- Windows XP
- FreeBSD
- Linux (Suse)

Het is dus echt allemaal mogelijk :p :)

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
truelight bedankt, ik heb geprobeerd wat je zei, maar het wil nog niet echt lukken
zal ik de source hier ff onder posten?

foutmelding als ik /php/nieuw.php opvraag:
Fatal error: Call to undefined function: imagettfbbox() in C:\Xitami\webpages\php\nieuw.php on line 4
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
  Header("Content-type: image/gif");
  if(!isset($s)) $s=11;
  $size = imagettfbbox($s,0,"/fonts/arial.ttf",$text);
  $dx = abs($size[2]-$size[0]);
  $dy = abs($size[5]-$size[3]);
  $xpad=9;
  $ypad=9;
  $im = imagecreate($dx+$xpad,$dy+$ypad);
  $blue = ImageColorAllocate($im, 0x2c,0x6D,0xAF);
  $black = ImageColorAllocate($im, 0,0,0);
  $white = ImageColorAllocate($im, 255,255,255);
  ImageRectangle($im,0,0,$dx+$xpad-1,$dy+$ypad-1,$black);
  ImageRectangle($im,0,0,$dx+$xpad,$dy+$ypad,$white);
  ImageTTFText($im, $s, 0, (int)($xpad/2)+1, $dy+(int)($ypad/2), $black, "/fonts/arial.ttf", 

$text);
  ImageTTFText($im, $s, 0, (int)($xpad/2), $dy+(int)($ypad/2)-1, $white, "/fonts/arial.ttf", 

$text);
  ImageGif($im);
  ImageDestroy($im);
?>

dit script wordt aangeroepen in een html dmv de tag:
[img]"nieuw.php?s=18&text=Uw+text+hier"[/img]

duss.

de fonts staan ook echt in die dir.

edit:

foutmelding
Afbeeldingslocatie: http://www.endoria.net/upload/?bekijk=1013431402

en toch staat ie er...
Afbeeldingslocatie: http://www.endoria.net/upload/?bekijk=1013431312


Verwijderd

Tja, gelukkig is die foutmelding van: can't load, HEEL duidelijk :) De GD library kan niet worden geladen...

Buiten de extensions in php.ini staat er ook nog waar de extensions staan:

; Directory in which the loadable extensions (modules) reside.
extension_dir =

Die moet je even ABSOLUUT aangeven (dus c:\PHP\extensions), direct je extension_dir in... dan restart, moet ie werken... al zegt Quistnet dat bij xitami geen restart nodig is :) Maar dan moet ie werken :)

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
ahhh ok gedaan.

als ik nu in cmd ff "php nieuw.php" doe, krijg ik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
C:\PHP>php nieuw.php
X-Powered-By: PHP/4.1.0
Content-type: image/gif

PHP Warning:  Undefined variable:  text in C:\PHP\nieuw.php on line 4
PHP Warning:  &#945;&#9824;&#402; in C:\PHP\nieuw.php on line 4
PHP Warning:  Undefined variable:  text in C:\PHP\nieuw.php on line 15
PHP Warning:  &#945;&#9824;&#402; in C:\PHP\nieuw.php on line 15
PHP Warning:  Undefined variable:  text in C:\PHP\nieuw.php on line 16
PHP Warning:  &#945;&#9824;&#402; in C:\PHP\nieuw.php on line 16
PHP Warning:  ImageGif: No GIF create support in this PHP build in C:\PHP\nieuw.
php on line 17

rare tekentjes dus..

btw dat &#945 enz dat zijn: à, schoppen(kaarten), f

  • HGM
  • Registratie: April 2000
  • Niet online

HGM

heb je nu al geprobeerd om een kant en klare php installatie te gebruiken??

Van die tekentjes hoef je je niets aan te trekken.

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
ja maar een kant en klare php installatie werkt dus niet.

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23:49

BierPul

2 koffie graag

Heeft iemand trouwens wel es voor elkaar gekregen om GD 2 te draaien onder windhoos :?

Ja man


  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
ja, truelight bijvoorbeeld

Verwijderd

Van die rare tekens zal ik niet weten, beantwoord ik dus ook niet :)

Van die laatste error, dat klopt. GD ondersteunt GEEN GIF MEER! Heeft hij wel gedaan. Gewoon PNG gebruiken, of JPEG als je wil... (ipv image/gif dus image/png, en ipv ImageGIF, ImagePNG)...

Succes :)

Verwijderd

Op maandag 11 februari 2002 15:32 schreef insan1ty het volgende:
ahhh ok gedaan.

als ik nu in cmd ff "php nieuw.php" doe, krijg ik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
C:\PHP>php nieuw.php
X-Powered-By: PHP/4.1.0
Content-type: image/gif

PHP Warning:  Undefined variable:  text in C:\PHP\nieuw.php on line 4
PHP Warning:  &#945;&#9824;&#402; in C:\PHP\nieuw.php on line 4
PHP Warning:  Undefined variable:  text in C:\PHP\nieuw.php on line 15
PHP Warning:  &#945;&#9824;&#402; in C:\PHP\nieuw.php on line 15
PHP Warning:  Undefined variable:  text in C:\PHP\nieuw.php on line 16
PHP Warning:  &#945;&#9824;&#402; in C:\PHP\nieuw.php on line 16
PHP Warning:  ImageGif: No GIF create support in this PHP build in C:\PHP\nieuw.
php on line 17

rare tekentjes dus..

btw dat &#945 enz dat zijn: à, schoppen(kaarten), f
Alleen JPEG en PNG is ondersteund vanaf GD 1.8.nogwat, gif is eruit gerukt...
Haal eerste even de leuke begrijpbare warnings weg.. zoals hier voor...
$size = imagettfbbox($s,0,"/fonts/arial.ttf",$text);

ook echt $text een waarde te geven :P

Verwijderd

Op maandag 11 februari 2002 15:41 schreef quistnet het volgende:

[..]

Alleen JPEG en PNG is ondersteund vanaf GD 1.8.nogwat, gif is eruit gerukt...
Haal eerste even de leuke begrijpbare warnings weg.. zoals hier voor...
$size = imagettfbbox($s,0,"/fonts/arial.ttf",$text);

ook echt $text een waarde te geven :P
LOL! Dat zal wel helpen ja :P :)

Enne: was je lekker voor met JPEG en PNG quistnetje :p :) Hihi

Verwijderd

Op maandag 11 februari 2002 15:43 schreef TrueLight het volgende:

[..]

LOL! Dat zal wel helpen ja :P :)

Enne: was je lekker voor met JPEG en PNG quistnetje :p :) Hihi
Ik ook van jou schat... :P

Verwijderd

Op maandag 11 februari 2002 15:46 schreef quistnet het volgende:

[..]

Ik ook van jou schat... :P
O+ O+ O+ O+

Hij zei schat tegen me! :)

Back ontopic!!!! :)

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
ok dan
het werkt nog nie helemaal
maar ik snap nog niet zoveel van php en ik heb het nu een beetje aangepast.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
  Header("Content-type: image/png");
  if(!isset($s)) $s=11;
  $text = "blaat";
  $size = imagettfbbox($s,0,"/fonts/arial.ttf",$text);
  $dx = abs($size[2]-$size[0]);
  $dy = abs($size[5]-$size[3]);
  $xpad=9;
  $ypad=9;
  $im = imagecreate($dx+$xpad,$dy+$ypad);
  $blue = ImageColorAllocate($im, 0x2c,0x6D,0xAF);
  $black = ImageColorAllocate($im, 0,0,0);
  $white = ImageColorAllocate($im, 255,255,255);
  ImageRectangle($im,0,0,$dx+$xpad-1,$dy+$ypad-1,$black);
  ImageRectangle($im,0,0,$dx+$xpad,$dy+$ypad,$white);
  ImageTTFText($im, $s, 0, (int)($xpad/2)+1, $dy+(int)($ypad/2), $black, 

"/fonts/TIMES.TTF", $text);
  ImageTTFText($im, $s, 0, (int)($xpad/2), $dy+(int)($ypad/2)-1, $white, 

"/fonts/TIMES.TTF", $text);
  ImagePng($im);
  ImageDestroy($im);
?>

ik heb $text maar gewoon een waarde meegegeven.

Verwijderd

Ja, wat is het probleem? Wat doet het niet? Je denkt toch niet dat wij helemaal gaan bekijken OF en WAAR er wat fout zit toch? :) Hihi! Moet nog wel een beetje van jezelf blijven :P Voor vragen over een fout die je niet snapt kan je hier terecht... maar met de melding: HIJ DOET HET NIET, komen we niet echt veel verder niet? :) Wees wat duidelijker please!

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
sorry, maar ik snap er echt geen ass van. dan raden jullie mij waarschijnlijk ff een spoedcursus php aan. goed dat ga ik dan maar doen.. :D

Verwijderd

Fijn dat je je eigen vragen beantwoord, toch altijd fijn die mensen die dat doen :) Scheelt altijd zoveel uitgeleg :P :)

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
haha

als iedereen dit deed, zou alles in de eerste post van een topic gebeurd zijn, en zou er geen discussie meer zijn.
maar goed.
nou wil ik niet graag posten van 'hey mijn script doet het niet maakt het plz voor mij' maar ik kom er zelf dus niet uit.
Ik hoef ook geen kant-en-klare oplossing ofzo, maar als iemand tips zou kunnen geven over fouten die ik gemaakt heb, graag. zoals bijv die zin:
Alleen JPEG en PNG is ondersteund vanaf GD 1.8.nogwat, gif is eruit gerukt...
Haal eerste even de leuke begrijpbare warnings weg.. zoals hier voor...
$size = imagettfbbox($s,0,"/fonts/arial.ttf",$text);

ook echt $text een waarde te geven
die snap ik niet. :?

Verwijderd

hij bedoelde wat ik bedoelde, dat GIF niet ondersteund is. En hij bedoelde dat je $text niet gedefineerd had, en dat dat wat foutjes gaf... verder niets! :) Dus dat is toch nog wel te volgen :P :) Hihi!

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
ja ok dat had ik dus al veranderd. maar nog steeds geen succes. btw tis nu content type image/png

Verwijderd

Thankyouz TrueLight :P

Anyway, nou ga eerst kijken welke foutmeldingen er ontstaan...
Nou, ik sla maar even een post over want ik zie dat ie dit truggeeft... wat jij eigenlijk ons had door moeten posten dus, debugproces is zowel toestand van de input (broncode), de output (htmlzooi) en de verwerking (php instellingen zelf)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
php img.php
X-Powered-By: PHP/4.0.6
Content-type: image/png

<br>
<b>Warning</b>:  ImageTtfBBox: No TTF support in this PHP build in <b>img.php</b> on line <b>5</b><br>
<br>
<b>Warning</b>:  ImageTtfText: No TTF support in this PHP build in <b>img.php</b> on line <b>17</b><br>
<br>
<b>Warning</b>:  ImageTtfText: No TTF support in this PHP build in <b>img.php</b> on line <b>20</b><br>
PNG

IHDR        cXµª¡Á'ê¡?¹ÁoäIEND®B`

De warnings, geen TTF support dus...
Ligt volgens mij aan de GD build, want ik zie even niet zo snel een aanwijzing in de php.ini... zorg dat je een goede GD verzie download...
Voor de rest zie je Na de warnings een leuke image, dus GD doet et nu wel, maar nu nog de TTF dus...

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
ik heb GD2 gevonden. een aantal dll's etc
gewoon in /extensions proppen?

Verwijderd

Ik heb geen flauw idee :P Probeer et, maar zorg wel dat je de goede dll dan aanwijst in je php.ini, tenzij die dezelfde naam heeft natuurlijk...

En geef zelf ook even je foutmeldingen nou eens door, want ik heb een andere verzie uiteraard van GD aangezien ik het op mn linuxje uit heb geprobeerd :P

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
ok da heb ik nu gedaan
nog steeds dezelfde foutmelding:
Call to undefined function: imagettfbbox()
bij het aanroepen van /nieuw.php

Verwijderd

Op maandag 11 februari 2002 17:28 schreef insan1ty het volgende:
ok da heb ik nu gedaan
nog steeds dezelfde foutmelding:
Call to undefined function: imagettfbbox()
bij het aanroepen van /nieuw.php
ok, nou zoals op
http://www.phpbuilder.com/manual/function.imagettftext.php

bijvoorbeeld is te zien:
This function requires both the GD library and the FreeType library.

http://www.freetype.org/

daar dus :P

succes :)

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
goed
ik kan dus alleen de sourcefiles vinden. dus niet gecompileerd. koet.

btw

het doel van mijn bezigheden hier is dus het maken van een usericon met daarin weet ik het, uptime bijv of het ipadress van de client. Heeft iemand hier ervaring mee?(neem aan van wel gezien alle usericons hier op GoT die erop lijken)

  • _-= Erikje =-_
  • Registratie: Maart 2000
  • Laatst online: 09-09 15:42
gebruik anders imagestring() of zo

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
Ook imagestring() is een undefined function...

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
hoe ziet jouw php scriptje er dan uit erikje?

  • _-= Erikje =-_
  • Registratie: Maart 2000
  • Laatst online: 09-09 15:42
[php]
<?php
header("Content-type: image/jpeg");
$width = 60;
$height = 60;
$font="/home/lid/erikje/public_html/verdana.ttf";

//create new image
$image = imagecreate($width, $height);

//Allocate colors
$white = ImageColorAllocate($image, 255, 255, 255);
$black = ImageColorAllocate($image, 0, 0, 0);
$yellow = ImageColorAllocate($image, 0, 255, 0);
$green = ImageColorAllocate($image, 0, 255, 255);
$red = ImageColorAllocate($image, 255, 100, 100);
$blue = ImageColorAllocate($image, 0, 0, 255);

$icon=rand(1,2);
/*
if(!isset($icon))
{
$icon=rand(1,4);
}
*/

if ($icon==1) //Let's do the Load Icon :)
{
imagefilledrectangle($image, 0, 0, 60, 60, $black);
ImageString($image, 1, 5, 15, "Load:", $white);
$load=exec("cat /proc/loadavg|cut -f 1 -d ' '");
ImageString($image, 5, 5, 40, $load, $yellow);
}

if ($icon==2) //Let's do the time Icon :)
{
imagefilledrectangle($image, 0, 0, 60, 60, $black);
imagestring($image, 0, 5, 15, "Time:", $yellow);
$time = exec("date +%H:%M.%S");
imagestring($image, 0, 3, 40, $time, $red);
}

if ($icon==3) //Let's do the no of users icon :)
{
imagefilledrectangle($image, 0, 0, 60, 60, $black);
imagettftext($image, 12, 0, 5, 15, $yellow, $font, "Users");
imagettftext($image, 9, 0, 5, 30, $green, $font, "logged");
imagettftext($image, 9, 0, 5, 45, $yellow, $font, "in:");
$users = exec("who -q|grep '#'|cut -f 2 -d '='");
imagettftext($image, 12, 0, 35, 49, $white, $font, $users);
}

if ($icon==4) //Let's do the users icon :)
{
imagefilledrectangle($image, 0, 0, 60, 60, $black);
imagettftext($image, 8, 0, 3, 15, $white, $font, "Users online");
$users = exec("who -q|grep '#'|cut -f 2 -d '='");

$base_x=3;
$base_y=25;

for($x = 1; $x < $users+1; $x++)
{
$user=exec("who|cut -f 1 -d' '|head -n $x|tail -n $no_of_users-$x");
imagettftext($image, 9, 0, $base_x, $base_y, $yellow, $font, $user);
$base_y=$base_y+10;
}
}

imagejpeg($image);
imagedestroy($image);
?>

Als ImageString niet bestaat is lib_gd niet geladen...

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
bedankt voor het script. over gd.lib, ik heb die wel in een zipfiletje staan met nog meer libs maar ik heb géén idee wat ik ermee moet (n00b alert!). Zijn dit al gecompilede files?

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
niemand?

kick na 1 dag mag :D

  • insan1ty
  • Registratie: Oktober 2001
  • Laatst online: 15-03-2023
yesss gelukt!!!

ik zat in de verkeerde php.ini te kijken |:( |:( |:(
lomp.

Afbeeldingslocatie: http://212.204.153.166/php/failures/tijd.php

alleen zit ik nu weer met een foutmelding maar dat is zo opgelost hoop ik
Pagina: 1