25. april 2007 - 14:35
Der er
13 kommentarer og 1 løsning
Hjælp til rescale et billede
Hej eksperter Jeg har dette script: function resize( $filename, $newfilename, $maxw, $maxh ) { $result = false; $extension = end(explode(".",$filename)); $srcim = ""; switch($extension) { case "jpg": case "jpeg": $srcim = imagecreatefromjpeg( $filename ); break; case "gif": $srcim = imagecreatefromgif( $filename ); break; default: //Her skal vi helst ikke være! return false; } $ow = imagesx( $srcim ); $oh = imagesy( $srcim ); $wscale = $maxw / $ow; $hscale = $maxh / $oh; $scale = ( $hscale < $wscale ? $hscale : $wscale ); $nw = round( $ow * $scale, 0 ); $nh = round( $oh * $scale, 0 ); $dstim = imagecreatetruecolor( $nw, $nh ); $trans_color = imagecolorallocate($dstim, 255, 0, 0); imagecolortransparent($dstim, $trans_color); imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh ); $result = false; switch($extension) { case "jpg": case "jpeg": $result = imagejpeg( $dstim, $newfilename, 85 ); break; case "gif": $result = imagegif( $dstim, $newfilename); break; default: //Her skal vi helst ikke være! return false; } imagedestroy( $dstim ); imagedestroy( $srcim ); return $result; } $filetyper = array("image/gif", "image/jpeg", "image/jpg", "image/pjpeg"); if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] == "") { echo"<table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" class=\"main_border\"> <tr class=\"log_bg\"> <td width=\"20\" valign=\"middle\"><img src=\"../img/godkend.gif\" width=\"23\" height=\"25\"></td> <td width=\"380\" valign=\"middle\"><div align=\"left\"> Der blev ikke valgt et billede.</div></td> </tr> </table><br>"; } if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") { if(is_uploaded_file($_FILES['upfile']['tmp_name'])) { $sti = "../img/vine/"; $uldir = $sti; $ulfile = $uldir.basename($_FILES['upfile']['name']); $thumbFile = $uldir."thumb_".basename($_FILES['upfile']['name']); move_uploaded_file($_FILES['upfile']['tmp_name'], $ulfile); resize($ulfile,$thumbFile,35,85); } $thumb = "img/vine/thumb_" . $_FILES['upfile']['name']; $pic = "img/vine/" . $_FILES['upfile']['name']; } } jeg ved det er stort ;) scriptet gør pt. at den smider et thumb billede op i ca størrelse 35*85 men jeg vil gerne have at den resizer det originale billede også til 200*509. Jeg håber i kan hjælpe. Mvh
Annonceindlæg fra Computerworld it-jobbank
25. april 2007 - 14:42
#1
Har du prøvet at kalde funktionen igen med andre værdier for $newfilename, $maxw og $maxh?
25. april 2007 - 16:10
#2
nej det har jeg ikke lige, men det er fordi jeg ikke helt kan se hvordan jeg skal sørge for at det gældre for variablen $pic
26. april 2007 - 20:41
#3
Prøv at ret til: if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") { if(is_uploaded_file($_FILES['upfile']['tmp_name'])) { $sti = "../img/vine/"; $uldir = $sti; $ulfile = $uldir.basename($_FILES['upfile']['name']); $thumbLargeFile = $uldir."thumb_large_".basename($_FILES['upfile']['name']); $thumbSmallFile = $uldir."thumb_small_".basename($_FILES['upfile']['name']); move_uploaded_file($_FILES['upfile']['tmp_name'], $ulfile); resize($ulfile,$thumbFile,200,509); resize($ulfile,$thumbFile,35,85); } $thumb = "img/vine/thumb_" . $_FILES['upfile']['name']; $pic = "img/vine/" . $_FILES['upfile']['name']; }
26. april 2007 - 21:08
#4
det du har ændret, gør det så billedet bliver 200*509 og så kalder variablen $pic?
26. april 2007 - 21:13
#5
Den bruger ikke $pic til noget! Det er noget du kode måske bruger længere nede i din kode.
26. april 2007 - 21:15
#6
ah okay, jeg bruger den til at smide op i min db så jeg kan hente thumb eller det store billede når det er nødvendigt
26. april 2007 - 21:26
#7
Lige præcist! Tusind tak :D
26. april 2007 - 21:26
#8
Hov, forkert tråd, sorry!
26. april 2007 - 22:05
#9
hehe det er i orden ;)
26. april 2007 - 23:00
#10
så fik jeg lavet så det passer, tak for hjælpen jakobdo, der var lige en fejl i din version. så her er den korrekte: if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") { if(is_uploaded_file($_FILES['upfile']['tmp_name'])) { $sti = "../img/vine/"; $uldir = $sti; $ulfile = $uldir.basename($_FILES['upfile']['name']); $thumbLargeFile = $uldir."thumb_large_".basename($_FILES['upfile']['name']); $thumbSmallFile = $uldir."thumb_".basename($_FILES['upfile']['name']); move_uploaded_file($_FILES['upfile']['tmp_name'], $ulfile); resize($ulfile,$thumbLargeFile,200,509); resize($ulfile,$thumbSmallFile,35,85); } $thumb = "img/vine/thumb_" . $_FILES['upfile']['name']; $pic = "img/vine/thumb_large_" . $_FILES['upfile']['name']; $large_pic = "img/vine/" . $_FILES['upfile']['name']; }
26. april 2007 - 23:01
#11
smid et svar :)
27. april 2007 - 08:28
#12
Svar!
undskyld sene godkend :-O -lukket-
Vi tilbyder markedets bedste kurser inden for webudvikling