23. maj 2003 - 15:09Der er
27 kommentarer og 1 løsning
Billedredigering med php
Jeg har mig et problem på min FreeBSD/Apache webserver når jeg vil bruge PHP's indbyggede billedredigering. De kommandoer der skulle kunne oprette nye billeder eller redigere eksisterende billeder virker tilsyneladende ikke da de bliver afvist som ukendte funktioner. Det er bl.a. funktioner som: "imagecreatefromjpeg" "imagecreatetruecolor"
Min server kører FreeBSD 4.7R og Apache 2.0 med PHP 4.2.3
Hvad skal jeg gøre for at disse funktioner kan tages i brug ???
Nu er GDlib ver.2 installeret, men den vil stadig ikke kendes ved funktionerne ?!?!?
Den kommer med denne fejl: "Fatal error: Call to undefined function: imagecreatefromjpeg() in /usr/data/www/test.seeque.dk/privat_test/picresize.php on line 54"
Det er ikke den alle der tilsyneladende kommer med fejlmeldinger... men hvis jeg prøver at indsætte denne kode i en PHP-fil og kalder den som billede kommer der ikke noget ud af det:
---------------------------------------------- <?php header ("Content-type: image/png"); $im = @imagecreate (50, 100) or die ("Cannot Initialize new GD image stream"); $background_color = imagecolorallocate ($im, 255, 255, 255); $text_color = imagecolorallocate ($im, 233, 14, 91); imagestring ($im, 1, 5, 5, "A Simple Text String", $text_color); imagejpeg($im); ?> ----------------------------------------------
Hov... min fejl.... men jeg sidder og leger lidt frem og tilbage med det:
JEg prøver at åbne et eksisterende billede med denne : ------------------ newjpg.php ------------------- <?php header ("Content-type: image/jpeg"); $im = @imagecreatefromjpeg ("ulla.jpg") or die ("Cannot open image"); imagejpeg($im); ?> -------------------------------------------------
Den bliver kaldt med denne fil: ------------------ pictest.php ------------------ <html> <head> <title>pictest</title> </head> <body> <IMG SRC="newjpg.php" WIDTH="790" HEIGHT="410" BORDER="1"> </body> </html> -------------------------------------------------
man burde lave noget kreativ bogføri.. hov, fejlhåndtering... for hvis den laver fejl har browseren allerede fået headeren om at det er et billede...
i første omgang kan du jo ændre det så det bliver:
<?php $im = imagecreatefromjpeg ("ulla.jpg") or die ("Cannot open image"); header ("Content-type: image/jpeg"); imagejpeg($im); ?>
prøv at se hvad du får af fejl når du bare laver det... (og prøv bagefter bare at lave et test-billede for at se om GDLi overhoevedet virker... (kommer med koden til sådan et om lidt...)
Når jeg prøver at vise "JS-PHP-billede-data.php" direkte får jeg denne fejlmeddelelse:
------------------------------------------------- Warning: Offset not contained in string in /usr/data/www/test.seeque.dk/privat_test/JS-PHP-billede-data.php on line 6
Warning: Cannot add header information - headers already sent by (output started at /usr/data/www/test.seeque.dk/privat_test/JS-PHP-billede-data.php:6) in /usr/data/www/test.seeque.dk/privat_test/JS-PHP-billede-data.php on line 27
Fatal error: Call to undefined function: imagecreate() in /usr/data/www/test.seeque.dk/privat_test/JS-PHP-billede-data.php on line 29 -------------------------------------------------
Nope... jeg ville have troet at den selv fandt ud af det. Jeg har ikke SÅ meget erfaring inden for opsætningen af PHP
hvis du kan hjælpe mig igennem opsætningen af det så det virker vil jeg meget gerne smide ekstra points oven i. .... eller skal jeg oprette spørgsmålet i en anden kategori ?
Jeg har fundet en php.ini, men den har ingen "gd2"... den har kun en "gd". Jeg prøver mig lidt frem og melder tilbage hvad jeg finder ud af. Ind til videre mange tak :-)
Jeg kan nu melde at fejlen lå i Apache 2.0. Lige så snart jeg smed den ud og installerede Apache 1.3 så virkede lortet :-)
Nu til et følgeproblem: Hvorfor er det at GDlib ikke kan finde ud af at resize nogen billeder som ud over at have et andet motiv ikke er forskellig fra dem den GODT kan risize ???
Jeg har været inde for at se egenskaberne for billederne og det eneste jeg kan finde af forskel er størrelsen og et andet motiv.
også samme fil-format? ik'... (dumt spm, men alligevel)
og du bruger nogle funktioner som virker normalt... så er det lidt mystisk... men prøv at bruge nogle af de andre comyimageresampled() ol. funktioner...
det var lige dem jeg brugte men jeg havde bare selve php-filen der skulle bearbejde filen åben i en ditor og den var ikke gemt efter sidste rettelse :-) DUMT !! :-)
Du kan se min testside her: http://test.seeque.dk/privat_test/pictest.php Du skal have menge tak for den tid du har brugt på det.... men i sidste ende var det så latterligt at det var en fejl i Apache 2.0
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.