28. marts 2004 - 10:42
Der er
26 kommentarer og 1 løsning
Resize flere på en gang
Hej. Er det muligt at få dette resize script til at resize flere billeder på en gang? <?php $pic = "evt/sti/billede.jpg"; // Originalt billede $thumb = "evt/sti/billede_thumb.jpg"; // Ønsket miniature billede Thumb($pic, $thumb); // Kald funktion function Thumb($sourcefile, $targetfile) { $size = 80; // Max størrelse (pixler) $source_id = imageCreateFromJPEG($sourcefile); $source_x = imagesx($source_id); $source_y = imagesy($source_id); $delta = $size/max($source_x, $source_y); $dest_x = round($source_x*$delta); $dest_y = round($source_y*$delta); $target_id=imagecreatetruecolor($dest_x, $dest_y); imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y); imagejpeg($target_id,$targetfile,100); } ?>
Annonceindlæg fra Partnertekst
28. marts 2004 - 12:11
#1
Jow, med en forløkke.
28. marts 2004 - 12:16
#2
Hvordan vil det se ud?
28. marts 2004 - 12:35
#3
Tror det her vil kunne gøre det: <? $a = array ("fil1.jpg", "fil2.jpg","fil3.jpg","fil4.jpg","fil5.jpg"); $b = array ("lille_fil1.jpg","lille_fil2.jpg","lille_fil3.jpg","lille_fil4.jpg","lille_fil5.jpg"); function Thumb($sourcefile, $targetfile) { $size = 80; // Max størrelse (pixler) $source_id = imageCreateFromJPEG($sourcefile); $source_x = imagesx($source_id); $source_y = imagesy($source_id); $delta = $size/max($source_x, $source_y); $dest_x = round($source_x*$delta); $dest_y = round($source_y*$delta); $target_id=imagecreatetruecolor($dest_x, $dest_y); imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y); imagejpeg($target_id,$targetfile,100); } foreach($a as $i => $v) { $c[$b[$i]] = $v; } foreach($c as $k => $v) { Thumb($v,$k); } ?>
28. marts 2004 - 12:47
#4
<?php $dist = $_SERVER["DOCUMENT_ROOT"] ."/pass/upload/"; if (isset($_FILES["upfile"])) { echo"<table width=\"289\" height=\"84\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td height=\"18\" valign=\"top\"><strong><font color=\"#000000\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Det er oprettet</font></strong></td> </tr> <tr> <td><table width=\"286\" height=\"65\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td width=\"139\" height=\"22\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Opret et nyt tilbud:</font></td> <td width=\"147\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"opret.php\">Klik her</a></font></td> </tr> <tr> <td height=\"22\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Slet et tilbud:</font></td> <td><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"delete.php\">Klik her</a></font></td> </tr> <tr> <td height=\"22\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Rediger et tilbud</font></td> <td><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"edit.php\">Klik her</a></font></td> </tr> </table></td> </tr> </table> "; $antal = 0; $names = array(); for($i = 0; $i < count($_FILES["upfile"]["name"]); $i++) { if ($_FILES["upfile"]["name"][$i] !="") { $antal++; if(is_uploaded_file($_FILES["upfile"]["tmp_name"][$i])) { if(move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $dist . $_FILES["upfile"]["name"][$i])) { $names[] = $_FILES["upfile"]["name"][$i]; $navn = $_POST["navn"] ; $sort = $_POST["sort"] ; $before = $_POST["before"] ; $nu = $_POST["nu"] ; $sparer = $_POST["sparer"] ; $tekst = $_POST["tekst"] ; $str1 = $_FILES["upfile"]["name"][$i]; $str2 = $_FILES["upfile"]["size"][$i]; $str3 = $_FILES["upfile"]["type"][$i]; echo ""; }else{ echo"Der skete en fejl, prøv igen"; } }else{ echo"Der skete en fejl, og tilbudet blev ikke oprettet. Prøv igen"; } } } } $names = implode(",", $names); mysql_query("INSERT INTO upload (navn, sort, before, nu, sparer, tekst, billede) values ('$navn', '$sort', '$before', '$nu', '$sparer', '$tekst', '$names')"); $query = mysql_query("SELECT * FROM `upload` WHERE `id` = '". $_GET["id"] ."'") or die (mysql_error()); if(mysql_num_rows($query) == 1) { $vis = mysql_fetch_array($query); $pics = "$vis[billede]"; $pic = explode(",", $pics); $a = array ("$pic[0]", "$pic[1]", "$pic[2]", "$pic[3]", "$pic[4]"); $b = array ("$pic[0]", "$pic[1]", "$pic[2]", "$pic[3]", "$pic[4]"); function Thumb($sourcefile, $targetfile) { $size = 80; // Max størrelse (pixler) $source_id = imageCreateFromJPEG($sourcefile); $source_x = imagesx($source_id); $source_y = imagesy($source_id); $delta = $size/max($source_x, $source_y); $dest_x = round($source_x*$delta); $dest_y = round($source_y*$delta); $target_id=imagecreatetruecolor($dest_x, $dest_y); imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y); imagejpeg($target_id,$targetfile,100); } foreach($a as $i => $v) { $c[$b[$i]] = $v; } foreach($c as $k => $v) { Thumb($v,$k); } } ?> - Det virker ikke her...
28. marts 2004 - 12:49
#5
Hvad laver du her: $a = array ("$pic[0]", "$pic[1]", "$pic[2]", "$pic[3]", "$pic[4]"); $b = array ("$pic[0]", "$pic[1]", "$pic[2]", "$pic[3]", "$pic[4]");
28. marts 2004 - 12:58
#6
Det er fordi de billeder jeg skal resize er blevet uploadet med det script som jeg har skrevet oven over. Og navnene på de 5 billeder bliver gemt i et array, og bliver kaldt frem på den måde der.
28. marts 2004 - 13:00
#7
Så skal det vel være: $a = array ($pic[0], $pic[1], $pic[2], $pic[3], $pic[4]); $b = array ($pic[0]."_thumb", $pic[1]."_thumb", $pic[2]."_thumb", $pic[3]."_thumb", $pic[4]."_thumb");
28. marts 2004 - 13:02
#8
Hjalp ikke <?php $dist = $_SERVER["DOCUMENT_ROOT"] ."/pass/upload/"; if (isset($_FILES["upfile"])) { echo"<table width=\"289\" height=\"84\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td height=\"18\" valign=\"top\"><strong><font color=\"#000000\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Det er oprettet</font></strong></td> </tr> <tr> <td><table width=\"286\" height=\"65\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td width=\"139\" height=\"22\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Opret et nyt tilbud:</font></td> <td width=\"147\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"opret.php\">Klik her</a></font></td> </tr> <tr> <td height=\"22\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Slet et tilbud:</font></td> <td><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"delete.php\">Klik her</a></font></td> </tr> <tr> <td height=\"22\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Rediger et tilbud</font></td> <td><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"edit.php\">Klik her</a></font></td> </tr> </table></td> </tr> </table> "; $antal = 0; $names = array(); for($i = 0; $i < count($_FILES["upfile"]["name"]); $i++) { if ($_FILES["upfile"]["name"][$i] !="") { $antal++; if(is_uploaded_file($_FILES["upfile"]["tmp_name"][$i])) { if(move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $dist . $_FILES["upfile"]["name"][$i])) { $names[] = $_FILES["upfile"]["name"][$i]; $navn = $_POST["navn"] ; $sort = $_POST["sort"] ; $before = $_POST["before"] ; $nu = $_POST["nu"] ; $sparer = $_POST["sparer"] ; $tekst = $_POST["tekst"] ; $str1 = $_FILES["upfile"]["name"][$i]; $str2 = $_FILES["upfile"]["size"][$i]; $str3 = $_FILES["upfile"]["type"][$i]; echo ""; }else{ echo"Der skete en fejl, prøv igen"; } }else{ echo"Der skete en fejl, og tilbudet blev ikke oprettet. Prøv igen"; } } } } $names = implode(",", $names); mysql_query("INSERT INTO upload (navn, sort, before, nu, sparer, tekst, billede) values ('$navn', '$sort', '$before', '$nu', '$sparer', '$tekst', '$names')"); $query = mysql_query("SELECT * FROM `upload`") or die (mysql_error()); if(mysql_num_rows($query) == 1) { $vis = mysql_fetch_array($query); $pics = "$vis[billede]"; $picc = explode(",", $pics); $a = array ($pic[0], $pic[1], $pic[2], $pic[3], $pic[4]); $b = array ($pic[0]."_thumb", $pic[1]."_thumb", $pic[2]."_thumb", $pic[3]."_thumb", $pic[4]."_thumb"); function Thumb($sourcefile, $targetfile) { $size = 80; // Max størrelse (pixler) $source_id = imageCreateFromJPEG($sourcefile); $source_x = imagesx($source_id); $source_y = imagesy($source_id); $delta = $size/max($source_x, $source_y); $dest_x = round($source_x*$delta); $dest_y = round($source_y*$delta); $target_id=imagecreatetruecolor($dest_x, $dest_y); imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y); imagejpeg($target_id,$targetfile,100); } foreach($a as $i => $v) { $c[$b[$i]] = $v; } foreach($c as $k => $v) { Thumb($v,$k); } } ?>
28. marts 2004 - 14:59
#9
Du kan måske ændre: $picc = explode(",", $pics); til: $pic = explode(",", $pics); Har du præcis én række i tabellen? Du kunne måske overveje at have to tabeller istedet, så hvert billednavn kunne få sin egen række.
28. marts 2004 - 15:24
#10
Det med flere rækker, da skal alle billederne være i samme række fordi jeg skal hente dem ud via ID... <?php $dist = $_SERVER["DOCUMENT_ROOT"] ."/pass/upload/"; if (isset($_FILES["upfile"])) { echo"<table width=\"289\" height=\"84\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td height=\"18\" valign=\"top\"><strong><font color=\"#000000\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Det er oprettet</font></strong></td> </tr> <tr> <td><table width=\"286\" height=\"65\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td width=\"139\" height=\"22\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Opret et nyt tilbud:</font></td> <td width=\"147\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"opret.php\">Klik her</a></font></td> </tr> <tr> <td height=\"22\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Slet et tilbud:</font></td> <td><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"delete.php\">Klik her</a></font></td> </tr> <tr> <td height=\"22\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Rediger et tilbud</font></td> <td><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"edit.php\">Klik her</a></font></td> </tr> </table></td> </tr> </table> "; $antal = 0; $names = array(); for($i = 0; $i < count($_FILES["upfile"]["name"]); $i++) { if ($_FILES["upfile"]["name"][$i] !="") { $antal++; if(is_uploaded_file($_FILES["upfile"]["tmp_name"][$i])) { if(move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $dist . $_FILES["upfile"]["name"][$i])) { $names[] = $_FILES["upfile"]["name"][$i]; $navn = $_POST["navn"] ; $sort = $_POST["sort"] ; $before = $_POST["before"] ; $nu = $_POST["nu"] ; $sparer = $_POST["sparer"] ; $tekst = $_POST["tekst"] ; $str1 = $_FILES["upfile"]["name"][$i]; $str2 = $_FILES["upfile"]["size"][$i]; $str3 = $_FILES["upfile"]["type"][$i]; echo ""; }else{ echo"Der skete en fejl, prøv igen"; } }else{ echo"Der skete en fejl, og tilbudet blev ikke oprettet. Prøv igen"; } } } } $names = implode(",", $names); mysql_query("INSERT INTO upload (navn, sort, before, nu, sparer, tekst, billede) values ('$navn', '$sort', '$before', '$nu', '$sparer', '$tekst', '$names')"); $query = mysql_query("SELECT * FROM `upload`") or die (mysql_error()); if(mysql_num_rows($query) == 1) { $vis = mysql_fetch_array($query); $pics = "$vis[billede]"; $pic = explode(",", $pics); $a = array ($pic[0], $pic[1], $pic[2], $pic[3], $pic[4]); $b = array ($pic[0]."_thumb", $pic[1]."_thumb", $pic[2]."_thumb", $pic[3]."_thumb", $pic[4]."_thumb"); function Thumb($sourcefile, $targetfile) { $size = 80; // Max størrelse (pixler) $source_id = imageCreateFromJPEG($sourcefile); $source_x = imagesx($source_id); $source_y = imagesy($source_id); $delta = $size/max($source_x, $source_y); $dest_x = round($source_x*$delta); $dest_y = round($source_y*$delta); $target_id=imagecreatetruecolor($dest_x, $dest_y); imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y); imagejpeg($target_id,$targetfile,100); } foreach($a as $i => $v) { $c[$b[$i]] = $v; } foreach($c as $k => $v) { Thumb($v,$k); } } ?> - Det med pic virkede ikke
28. marts 2004 - 19:43
#11
Warning: imagecreatefromjpeg(../pass/upload/): failed to open stream: Permission denied in C:\W3Sites\biga8000\www\pass\upload.php on line 106 Warning: imagesx(): supplied argument is not a valid Image resource in C:\W3Sites\biga8000\www\pass\upload.php on line 107 Warning: imagesy(): supplied argument is not a valid Image resource in C:\W3Sites\biga8000\www\pass\upload.php on line 108 Warning: Division by zero in C:\W3Sites\biga8000\www\pass\upload.php on line 109 Warning: imagecreatetruecolor(): Invalid image dimensions in C:\W3Sites\biga8000\www\pass\upload.php on line 112 Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\W3Sites\biga8000\www\pass\upload.php on line 113 Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\W3Sites\biga8000\www\pass\upload.php on line 114 106: $source_id = imageCreateFromJPEG($sourcefile); 107: $source_x = imagesx($source_id); 108: $source_y = imagesy($source_id); 109: $delta = $size/max($source_x, $source_y); 110: $dest_x = round($source_x*$delta); 111: $dest_y = round($source_y*$delta); 112: $target_id=imagecreatetruecolor($dest_x, $dest_y); 113: imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y); 114: imagejpeg($target_id,$targetfile,100);
28. marts 2004 - 19:44
#12
Nu gør den som den skal, men den kommer med de fejl som jeg har skrevet oven over... Her er hele koden: $dist = $_SERVER["DOCUMENT_ROOT"] ."/pass/upload/"; if (isset($_FILES["upfile"])) { echo"<table width=\"289\" height=\"84\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td height=\"18\" valign=\"top\"><strong><font color=\"#000000\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Det er oprettet</font></strong></td> </tr> <tr> <td><table width=\"286\" height=\"65\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td width=\"139\" height=\"22\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Opret et nyt tilbud:</font></td> <td width=\"147\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"opret.php\">Klik her</a></font></td> </tr> <tr> <td height=\"22\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Slet et tilbud:</font></td> <td><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"delete.php\">Klik her</a></font></td> </tr> <tr> <td height=\"22\"><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">Rediger et tilbud</font></td> <td><font size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\"><a href=\"edit.php\">Klik her</a></font></td> </tr> </table></td> </tr> </table> "; $antal = 0; $names = array(); for($i = 0; $i < count($_FILES["upfile"]["name"]); $i++) { if ($_FILES["upfile"]["name"][$i] !="") { $antal++; if(is_uploaded_file($_FILES["upfile"]["tmp_name"][$i])) { if(move_uploaded_file($_FILES["upfile"]["tmp_name"][$i], $dist . $_FILES["upfile"]["name"][$i])) { $names[] = $_FILES["upfile"]["name"][$i]; $navn = $_POST["navn"] ; $sort = $_POST["sort"] ; $before = $_POST["before"] ; $nu = $_POST["nu"] ; $sparer = $_POST["sparer"] ; $tekst = $_POST["tekst"] ; $str1 = $_FILES["upfile"]["name"][$i]; $str2 = $_FILES["upfile"]["size"][$i]; $str3 = $_FILES["upfile"]["type"][$i]; echo ""; }else{ echo"Der skete en fejl, prøv igen"; } }else{ echo"Der skete en fejl, og tilbudet blev ikke oprettet. Prøv igen"; } } } } $names = implode(",", $names); mysql_query("INSERT INTO upload (navn, sort, before, nu, sparer, tekst, billede) values ('$navn', '$sort', '$before', '$nu', '$sparer', '$tekst', '$names')"); $query = mysql_query("SELECT * FROM `upload`") or die (mysql_error()); $vis = mysql_fetch_array($query); $pics = "$vis[billede]"; $pic = explode(",", $pics); $a = array ("../pass/upload/$pic[0]", "../pass/upload/$pic[1]", "../pass/upload/$pic[2]", "../pass/upload/$pic[3]", "../pass/upload/$pic[4]"); $b = array ("../pass/upload/$pic[0]", "../pass/upload/$pic[1]", "../pass/upload/$pic[2]", "../pass/upload/$pic[3]", "../pass/upload/$pic[4]"); function Thumb($sourcefile, $targetfile) { $size = 300; $source_id = imageCreateFromJPEG($sourcefile); $source_x = imagesx($source_id); $source_y = imagesy($source_id); $delta = $size/max($source_x, $source_y); $dest_x = round($source_x*$delta); $dest_y = round($source_y*$delta); $target_id=imagecreatetruecolor($dest_x, $dest_y); imagecopyresampled($target_id,$source_id,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y); imagejpeg($target_id,$targetfile,100); } foreach($a as $i => $v) { $c[$b[$i]] = $v; } foreach($c as $k => $v) { Thumb($v,$k); }
28. marts 2004 - 20:51
#13
Hvorfor går du et dir tilbage ? $a = array ("../pass/upload/$pic[0]", Skal det ik være ? $a = array ("upload/$pic[0]", eller $a = array ("./upload/$pic[0]", da scriptet ligger i /pass/
28. marts 2004 - 22:04
#14
Det kan der være noget om... Nu gider den hellere ikke lave dem mindre mere... Tror du at det er fordi jeg ikke har chmod'et mappen som billederne ligger i til 766 ?
28. marts 2004 - 22:37
#15
Det vil nok også være en go idé. Og så skal du vel også lige ha rettet: $b = array ("../pass/upload/$pic[0]", så den ikke overskriver de oploadede billeder
28. marts 2004 - 22:42
#16
Ok, det får jeg fixet. Det er meningen at den skal overskrive de uploadede billeder
28. marts 2004 - 22:45
#17
Tror jeg ikke du kan, uden at kalde dem noget andet først, og så slette originalen, og omdøbe dem bagefter, men er ikke sikker
28. marts 2004 - 22:50
#18
Har lige prøvet at kalde dem noget andet, det hjalp lige lidt :(
29. marts 2004 - 17:45
#19
Indtil videre har det ikke virket... Sukos hvordan ville du lave den forløkke du snakkede om?
29. marts 2004 - 18:11
#20
jahh, jeg har ikke prøvet det af, men vil da gerne lige prøve! :O)
29. marts 2004 - 18:14
#21
æhh, skal lige en tur i byen, men senere!
31. marts 2004 - 00:25
#22
Ville lige høre om du har glemt mig sukos? :)
31. marts 2004 - 06:38
#23
Nej, ikke helt da! :O) Men lige før du bruger $names = implode(",", $names); bruger du så: foreach($names as $fil) { Thumb($dist . $fil, $dist . "th_". $fil); // billede.jpg bliver til th_billede.jpg }
31. marts 2004 - 08:43
#24
Jamen Sukos, det virkede jo i første hug... Typisk med dig ;) Mange tak. Kommer du lige med et svar, og gør du, hindu_skp lige det samme??
31. marts 2004 - 10:05
#25
Jeg ønsker ikke at svare, da mit forslag ikke virkede sammen med din eksisterende kode.
31. marts 2004 - 10:21
#26
Det med første gang, er jo kode som vises her! :O) Og startede da også med noget af det jeg havde liggende, men fandt så ud af at du kunne nøjes med en foreach() :O)
31. marts 2004 - 15:46
#27
Nå, men så kan jeg da give dig et mange tak for hjælpen hindu_skp :) Også endnu engang, mange tak til dig sukos :)
Vi tilbyder markedets bedste kurser inden for webudvikling