13. september 2005 - 23:43
Der er
26 kommentarer og 1 løsning
billedbehandling to gange i script
Hej. Jeg skal 2 gange i samme script lave noget billedreduktion, og det virker ikke efter hensigten. STORTBILLEDE får den størrelse som lilleBILLEDE skulle have haft, og lilleBILLEDE bliver slet ikke dannet ????? Hvad er galt ??????? Koden ser således ud : if (!empty($_FILES['upfil']['name'])) { $konfiguration["upload_bibliotek"] = "./test"; /* Hvor flytter vi fra og til */ $fra = $_FILES["upfil"]["tmp_name"]; $til = $konfiguration["upload_bibliotek"] . "/" .$billede; move_uploaded_file($fra, $til); $st = filesize($til); //*******STORTBILLEDE************* // Set a maximum height and width $width = 600; $height = $width; // Get new dimensions list($width_orig, $height_orig) = getimagesize($til); if ($width_orig > $width OR $height_orig > $height) { if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig; } else { $height = ($width / $width_orig) * $height_orig; } // Resample $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($til); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); $billede2 = $billede0 . '2' . '.' . 'jpg'; $billede = basename($billede2); // Output imagejpeg($image_p, $billede2, 100); //unlink($til); } //*******DETTE HEROVER ER STORTBILEDE************* //*******DETTE HERUNDER ER lilleBILLEDE************* // Set a maximum height and width $width1 = 50; $height1 = $width1; // Get new dimensions list($width_orig, $height_orig) = getimagesize($til); if ($width_orig > $width1 OR $height_orig > $height1) { if ($width1 && ($width_orig < $height_orig)) { $width1 = ($height1 / $height_orig) * $width_orig; } else { $height1 = ($width1 / $width_orig) * $height_orig; } // Resample $image_p1 = imagecreatetruecolor($width1, $height1); $image1 = imagecreatefromjpeg($til); imagecopyresampled($image_p1, $image1, 0, 0, 0, 0, $width1, $height1, $width_orig, $height_orig); $billede5 = $billede0 . '2' . '.' . 'jpg'; $billede11 = basename($billede5); // Output imagejpeg($image_p1, $billede5, 100); //unlink($til); } //*******DETTE HEROVER ER lillebillede*************
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
14. september 2005 - 01:28
#1
Ingen natteravne med ekspertise i PHP ??
14. september 2005 - 08:29
#2
Hvad med denne løsning: function resize( $filename, $newfilename, $maxw, $maxh ) { $srcim = NULL; list($width, $height, $filetype, $attr) = getimagesize($filename); switch($filetype) { case 1: $srcim = imagecreatefromgif( $filename ); break; case 2: $srcim = imagecreatefromjpeg( $filename ); break; } $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 ); imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh ); switch($filetype) { case 1: imagegif( $dstim, $newfilename); break; case 2: imagejpeg( $dstim, $newfilename, 85 ); break; } imagedestroy( $dstim ); imagedestroy( $srcim ); return file_exists($newfilename); } if (!empty($_FILES['upfil']['name'])) { $konfiguration["upload_bibliotek"] = "./test"; /* Hvor flytter vi fra og til */ $fra = $_FILES["upfil"]["tmp_name"]; $til = $konfiguration["upload_bibliotek"] . "/" .$billede; move_uploaded_file($fra, $til); $st = filesize($til); //*******STORTBILLEDE************* // Set a maximum height and width $max = 600; $billede2 = $billede0 . '2' . '.' . 'jpg'; $billede = basename($billede2); resize( $til, $billede, $max, $max); //*******DETTE HEROVER ER STORTBILEDE************* //*******DETTE HERUNDER ER lilleBILLEDE************* // Set a maximum height and width $max = 50; $billede5 = $billede0 . '2' . '.' . 'jpg'; $billede = basename($billede5); resize( $til, $billede, $max, $max); } //*******DETTE HEROVER ER lillebillede*************
14. september 2005 - 12:46
#3
øh hvad bliver hhv stortbillede og lillebillede gemt under ????
14. september 2005 - 12:59
#4
Det bliver gemt i resize som $billede Og billede sætter du: $billede = basename($billede2); og $billede = basename($billede5);
14. september 2005 - 13:19
#5
Ja men jeg skal jo gemme begge billeder i databasen, og så kan de jo ikke begge hedde $billede ??
14. september 2005 - 13:22
#6
Så ret: $billede = basename($billede2); resize( $til, $billede, $max, $max); Til: $billede12 = basename($billede2); resize( $til, $billede12, $max, $max); og $billede = basename($billede5); resize( $til, $billede, $max, $max); Til: $billede15 = basename($billede5); resize( $til, $billed15e, $max, $max);
14. september 2005 - 13:30
#7
$billede15 = basename($billede5); resize( $til, $billed15e, $max, $max); skal vel være ??? $billede15 = basename($billede5); resize( $til, $billed15, $max, $max);
14. september 2005 - 13:44
#8
$billed15e skal rettes til: $billede15 Trykfejl.
14. september 2005 - 13:44
#9
En helt anden ting, ved du hvad der er der sker i den kode der?
14. september 2005 - 14:02
#10
I hilken af koderne ??
14. september 2005 - 14:03
#11
I hvilken af koderne ??
14. september 2005 - 14:13
#12
I min kode? I din kode?
14. september 2005 - 14:23
#13
ja i min gør jeg. Billederne reduceres i størrelsen ! Din vil jeg gå udfra gør det samme. Hvorfor skulle jeg ikke forstså min egen kode ?? Fostår bare ikke at man ikke kan reducere to billeder i samme script..
14. september 2005 - 14:31
#14
Det kan man også godt! funktionen resize() virker på denne måde: resize($originalFil,$nyFil,$maxWidth,$maxHeight) og den kan du jo så kalde flere gange på $originalFil
14. september 2005 - 15:06
#15
ja okay men i mit eget script kan jeg ikke..
14. september 2005 - 15:07
#16
Jeg må lige kigge på dit script senere, hvis altså ikke du kan bruge min løsning.
14. september 2005 - 15:35
#17
Fint hvis du gider det, for jeg ku godt tænke mig at mit kom til at virke..
14. september 2005 - 21:28
#18
Så har jeg rodet med din kode, og denne virker hos mig: <?php /*********************\ * Checker PHP-version * \*********************/ list($major, $minor, $rev) = explode(".", phpversion()); if($major < 4) { die("Jeg kan kun arbejde med PHP 4.0.0 eller derover"); } /********************************************\ * Udligner forskellene mellem 4.1.x og 4.0.x * * Bemaerk, at disse ikke er "superglobals" * \********************************************/ if($minor < 1) { $_FILES = $HTTP_POST_FILES; $_POST = $HTTP_POST_VARS; $_SERVER = $HTTP_SERVER_VARS; } echo "<pre>"; print_r($_FILES); echo "</pre>"; if (!empty($_FILES['upfil']['name'])) { $konfiguration["upload_bibliotek"] = "upload"; /* Hvor flytter vi fra og til */ $path = getcwd() . "/" . $konfiguration["upload_bibliotek"] . "/"; $fra = $_FILES["upfil"]["tmp_name"]; $til = $path . basename($_FILES['upfil']['name']); move_uploaded_file($fra, $til); $billede = basename($_FILES['upfil']['name']); $pos = strrpos($billede,"."); $billede = substr($billede,0,$pos); $st = filesize($til); //*******STORTBILLEDE************* // Set a maximum height and width $width = 600; $height = $width; // Get new dimensions list($width_orig, $height_orig) = getimagesize($til); if ($width_orig > $width OR $height_orig > $height) { if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig; } else { $height = ($width / $width_orig) * $height_orig; } // Resample $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($til); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); $billede2 = $path . $billede . "2.jpg"; // Output imagejpeg($image_p, $billede2, 100); //unlink($til); } //*******DETTE HEROVER ER STORTBILEDE************* //*******DETTE HERUNDER ER lilleBILLEDE************* // Set a maximum height and width $width1 = 50; $height1 = $width1; // Get new dimensions list($width_orig, $height_orig) = getimagesize($til); if ($width_orig > $width1 OR $height_orig > $height1) { if ($width1 && ($width_orig < $height_orig)) { $width1 = ($height1 / $height_orig) * $width_orig; } else { $height1 = ($width1 / $width_orig) * $height_orig; } // Resample $image_p1 = imagecreatetruecolor($width1, $height1); $image1 = imagecreatefromjpeg($til); imagecopyresampled($image_p1, $image1, 0, 0, 0, 0, $width1, $height1, $width_orig, $height_orig); $billede5 = $path . $billede . "5.jpg"; // Output imagejpeg($image_p1, $billede5, 100); //unlink($til); } //*******DETTE HEROVER ER lillebillede************* echo $billede2 . "<br>"; echo $billede5 . "<br>"; } else { ?> <!-- The data encoding type, enctype, MUST be specified as below --> <form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF'];?>" method="POST"> <!-- MAX_FILE_SIZE must precede the file input field --> <input type="hidden" name="MAX_FILE_SIZE" value="1024000" /> Send this file: <input name="upfil" type="file" /> <input type="submit" value="Send File" /> </form> <? } ?> PS: Husk at ret upload dir til dit rigtige dir.
14. september 2005 - 23:52
#19
Der er lidt ged i den mht det lille billede. Det er noget med stien tror jeg Men det skal i samme mappe som det store billede. Jeg har lige nu : if (!empty($_FILES['upfil']['name'])) { $konfiguration["upload_bibliotek"] = "./test"; /* Hvor flytter vi fra og til */ $path = getcwd() . "/" . $konfiguration["upload_bibliotek"] . "/"; $fra = $_FILES["upfil"]["tmp_name"]; $til = $konfiguration["upload_bibliotek"] . "/" .$billede; $path = getcwd() . "/" . $konfiguration["upload_bibliotek"] . "/"; move_uploaded_file($fra, $til); //$billede = basename($_FILES['upfil']['name']); //$pos = strrpos($billede,"."); //$billede = substr($billede,0,$pos); $st = filesize($til); //*******DETTE HERUNDER ER NYT_STORTBILLEDE************* // Set a maximum height and width $width = 600; $height = $width; // Get new dimensions list($width_orig, $height_orig) = getimagesize($til); if ($width_orig > $width OR $height_orig > $height) { if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig; } else { $height = ($width / $width_orig) * $height_orig; } // Resample $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($til); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); $billede2 = $billede0 . '2' . '.' . 'jpg'; $billede = basename($billede2); // Output imagejpeg($image_p, $billede2, 100); //unlink($til); } //*******DETTE HEROVER ER OGSÅ NYT************* //*******DETTE HERUNDER ER NYT_lilleBILLEDE************* // Set a maximum height and width $width1 = 50; $height1 = $width1; // Get new dimensions list($width_orig, $height_orig) = getimagesize($til); if ($width_orig > $width1 OR $height_orig > $height1) { if ($width1 && ($width_orig < $height_orig)) { $width1 = ($height1 / $height_orig) * $width_orig; } else { $height1 = ($width1 / $width_orig) * $height_orig; } // Resample $image_p1 = imagecreatetruecolor($width1, $height1); $image1 = imagecreatefromjpeg($til); imagecopyresampled($image_p1, $image1, 0, 0, 0, 0, $width1, $height1, $width_orig, $height_orig); $billede5 = $path . $billede . "5.jpg"; $billede11 = basename($billede5); // Output imagejpeg($image_p1, $billede5, 100); //unlink($til); } //*******DETTE HEROVER ER OGSÅ NYT*************
15. september 2005 - 00:01
#20
Dette har jeg så lige inden ovenstående kode : if (preg_match("/\.jpe?g$/i",$files)){ $billede0 = tempnam('/var/www/komsikomsa.dk/test/', 'f1_'); $billede0b = $billede0 . '.' . 'jpg'; $billede = basename($billede0b); } elseif (preg_match('/\.gif$/i',$files)) { $billede0 = tempnam('/var/www/komsikomsa.dk/test/', 'f1_'); //$billede0 = tempnam('/customers/komsikomsa.dk/komsikomsa.dk/httpd.www/test/', 'f1'); $billede0b = $billede0 . '.' . 'gif'; $billede = basename($billede0b); }
15. september 2005 - 01:55
#21
øh er lidt i tvivl om hvilke variable jeg skal lægge i databasen ?? Er det $billede2 og $billede5?? Lige nu lægger jeg $billede og $billede11 i databasen......
15. september 2005 - 08:10
#22
Prøv at print: $billede2 og $billede5 Det skulle gerne indeholde fuld sti til billederne.
15. september 2005 - 12:50
#23
okay men stien kender jeg godt.. er mere i tvivl om selve koden mht. hvilken variabel hhv store og lille billede er gemt i. er det $billede2 og $billede5?? eller $billede og $billede11 ??
15. september 2005 - 13:21
#24
$billede2 = stort! $billede5 = lille!
23. november 2005 - 12:19
#25
jacobdo læg et svar..
23. november 2005 - 19:05
#26
Svar!
22. september 2006 - 10:39
#27
Takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling