Avatar billede dennism Nybegynder
07. januar 2006 - 15:03 Der er 13 kommentarer og
1 løsning

PHP: Billedbehandling

Når jeg uploade et billede via en form, hvordan kan jeg så vha. PHP få fremstillet et thumb af dette?
Er desuden bange for, at nogle af mine kunder vil uploade nogle MEGET store billeder. Kunne også godt tænke mig, at man kunne ændre opløsningen på nogle af disse, så de ikke er så tunge at hente for brugerne.

Nogen der kan give eksempler på, hvordan dette kan løses?
Avatar billede webstuff Nybegynder
07. januar 2006 - 15:14 #1
mht. til din thumbnailes så kan du jo bare lave en løkke som udskriver alle filerne i en mappe sådan her:

echo "<img src=\"$filnavn\" width=\"25\" height=\"25\"><br />";

Men ellers hvis jeg ikke tager helt fejl er der vist en funktion som faktisk hedder thumbnailes, som virker noget alla den her retning.

echo thumbnailes(25, 25, $filnavn);
Men den må du ikke hænge mig op på...
Avatar billede dennism Nybegynder
07. januar 2006 - 15:16 #2
Det ville jo være smart at redigere filen og uploade til serveren, således at thumb'et ikke fylder så meget.
Avatar billede fixxxer Nybegynder
07. januar 2006 - 16:18 #3
Avatar billede dennism Nybegynder
08. januar 2006 - 10:05 #5
Jeg har nu leget en del med det, men synes ik rigtigt jeg kan få det til at fungere. Når jeg uploader med min form, ligger billedet i: $_FILES['image']['tmp_name'].

Jeg har følgende kode, som tager imod formen:

list($width, $height) = getimagesize($_FILES['image']['tmp_name']);
$newwidth = $width*0.2;
$newheight = $height*0.2;

$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($_FILES['image']['tmp_name']);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

copy($thumb,"../test.jpg");

Ved at køre denne kode får jeg følgende fejl:
Warning: copy(Resource id #8) [function.copy]: failed to open stream: No such file or directory in ...
Avatar billede dennism Nybegynder
08. januar 2006 - 11:03 #6
Jeg har også forsøgt mig med denne:

$imagetype = $_FILES['image']['type'];
copy($_FILES['image']['tmp_name'],"test.jpg");

$filename = 'test.jpg';
$percent = 0.5;

list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($thumb);

Her gemmer jeg først filen på serveren og åbner den først derefter til redigering. Når jeg kører denne kode resulterer det i, at jeg får en masse mærkelige tegn frem :)
Avatar billede dennism Nybegynder
08. januar 2006 - 11:16 #7
Jeg er interesseret I at få ændret størrelsen på det billede der ligger på serveren, da jeg også vil spare plads. Nogle af mine billeder er større end 2000pixels.
Avatar billede nizo Nybegynder
08. januar 2006 - 13:48 #8
Naar billederne er saa storer skal du nok regne med at din server laver timeout mens du laver resize - billedebehandling med billeder paa den størrelse tager lang tid..
Avatar billede dennism Nybegynder
08. januar 2006 - 13:55 #9
Hvilke muligheder har jeg så?
Avatar billede nizo Nybegynder
08. januar 2006 - 14:06 #10
Du kan udsætte server timout'en.
Avatar billede dennism Nybegynder
08. januar 2006 - 14:07 #11
Ja, det kunne jeg gøre.

Har du et forslag til hvordan jeg får min resize til at virke?
Avatar billede dennism Nybegynder
08. januar 2006 - 14:08 #12
Når billeder er blevet resized skal der gerne kopieres til en ny fil.
Avatar billede dennism Nybegynder
08. januar 2006 - 18:51 #13
Ingen der kan hjælpe her?
Avatar billede dennism Nybegynder
09. januar 2006 - 14:00 #14
Jeg lukker her.
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

IT-JOB