Avatar billede seeque Nybegynder
23. maj 2003 - 15:09 Der 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 ???

SeeQue
Avatar billede fangel Nybegynder
23. maj 2003 - 15:17 #1
installere GDLib...
Avatar billede seeque Nybegynder
23. maj 2003 - 15:35 #2
Hej Dea_pg

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"

Mvh
SeeQue
Avatar billede fangel Nybegynder
23. maj 2003 - 15:38 #3
kan du kalde nogle af funktionerne overhoevedet? eller er det en funk. der mangler?

Morten
Avatar billede seeque Nybegynder
23. maj 2003 - 15:51 #4
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);
?>
----------------------------------------------

SeeQue
Avatar billede seeque Nybegynder
23. maj 2003 - 15:51 #5
Så jeg vil sige at det er alle funktionerne der fejler :-(

SeeQue
Avatar billede fangel Nybegynder
23. maj 2003 - 15:55 #6
nu sender du jo også en "image/png", men vælger at bruge "imagejpeg"... vil nok i sig selv give en fejl fejl... ;) (billedet vil ikke blive vist)

Morten
Avatar billede seeque Nybegynder
23. maj 2003 - 16:04 #7
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>
-------------------------------------------------

Det skulle da være rigtigt... og rimeligt simpelt.
Urlen til pictest.php er:
http://test.seeque.dk/privat_test/pictest.php

SeeQue
Avatar billede fangel Nybegynder
23. maj 2003 - 16:10 #8
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...)

Morten
Avatar billede seeque Nybegynder
23. maj 2003 - 16:13 #9
Selv om jeg flytter "imagecreatefromjpeg" over headeren kommer der stadig ingen fejlbesked til syne.

SeeQue
Avatar billede fangel Nybegynder
23. maj 2003 - 16:14 #10
nej, du skal gå direkte ind på billedefilen... ;) altå ikke "kalde" den fra en anden side hvis du vil se billedet...
Avatar billede fangel Nybegynder
23. maj 2003 - 16:16 #11
prøv at lav de to filer som kilden til står her:

http://mfa.ath.cx/js-php-billede.php

filerne skal hedde henholdsvis "JS-PHP-billede.php" og "JS-PHP-billede-data.php"... bare for at teste om GDLib overhovedet virker...

Morten
Avatar billede seeque Nybegynder
23. maj 2003 - 16:27 #12
Jeg må nok indrømme at det ser ikke ud til at den virker:
http://test.seeque.dk/privat_test/JS-PHP-billede.php

GD ver2 viste dog ingen fejl overhovedet da jeg installerede den... og for at være sikker genstartede jeg serveren bagefter

SeeQue
Avatar billede seeque Nybegynder
23. maj 2003 - 16:30 #13
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
-------------------------------------------------

SeeQue
Avatar billede fangel Nybegynder
23. maj 2003 - 16:35 #14
OK... vi prøver et lidt simplere billede...

---
<?php

Header( "Content-type: image/png");

$image = imagecreate(200,200);
$maroon = ImageColorAllocate($image,100,0,0);
$white = ImageColorAllocate($image,255,255,255);
ImageFilledRectangle($image,0,0,200,200,$white);
ImageRectangle($image,10,10,190,190,$maroon);
ImageFilledRectangle($image,50,50,150,150,$maroon);
ImagePNG($image);
ImageDestroy($image);

?>
---

Morten
Avatar billede seeque Nybegynder
23. maj 2003 - 16:41 #15
hmmm.... heller ikke noget held :-(
du kan se resultatet som det nederste billede på:
http://test.seeque.dk/privat_test/pictest.php

SeeQue
Avatar billede fangel Nybegynder
23. maj 2003 - 16:47 #16
jeg ved simpelt hen ikke hvorfor det ikke virker... må være GDLib den er gal med...

du har huske at konfgurer PHP til at bruge GDlib...

Morten
Avatar billede seeque Nybegynder
23. maj 2003 - 16:51 #17
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 ?

SeeQue
Avatar billede detox Nybegynder
23. maj 2003 - 17:06 #18
Du skal fjerne ; foran extension=php_gd2.dll i din php.ini.
Avatar billede fangel Nybegynder
23. maj 2003 - 17:16 #19
jeg gætter på at du kører linux, og jeg har meget lidt erfaring med PHP på linux, og opsætning af dette... så det kan jeg desværre ikke...

prøv at se om du kan finde en anden der ved mere om det...

Morten
Avatar billede detox Nybegynder
23. maj 2003 - 17:27 #20
åh, ja Linux. Det så jeg ikke lige. Sorry.
Avatar billede seeque Nybegynder
23. maj 2003 - 18:17 #21
he he... jo jeg kører FreeBSD.

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 :-)

SeeQue
Avatar billede detox Nybegynder
24. maj 2003 - 09:20 #22
ved nærmere eftertanke havde jeg heller ingen gd2 i min ini, men da jeg havde php_gd2.dll, tilføjede jeg et 2 tal.
Avatar billede seeque Nybegynder
26. maj 2003 - 14:37 #23
Jeg må desværre melde at de moduler man kan finde i php.ini er KUN til brug under windows, så ingen held på den front.

Yderligere foreslag til løsnig af problemet er MEGET velkomne

SeeQue
Avatar billede seeque Nybegynder
30. maj 2003 - 14:19 #24
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.

SeeQue
Avatar billede fangel Nybegynder
30. maj 2003 - 14:22 #25
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...

Morten
Avatar billede seeque Nybegynder
30. maj 2003 - 14:26 #26
Glem det sidste spørgsmål.... det var mig der ikke havde opdateret siden :-)

JEg lukker spørgsmålet da jeg selv fandt fejlen.
Avatar billede seeque Nybegynder
30. maj 2003 - 14:30 #27
dea_pg

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

SeeQue
Avatar billede fangel Nybegynder
30. maj 2003 - 14:34 #28
så lidt...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester