05. september 2006 - 22:58
Der er
12 kommentarer og 1 løsning
Fejl i resize script
Hejsa, efter at have lavet mit upload system om skal jeg have integreret et resize system. Jeg har indsat det, men det virker ikke rigtig. Kan i se hva der ska ændres? //Upload function resize( $filename, $newfilename, $maxw, $maxh ) { $srcim = imagecreatefromjpeg( $filename ); $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 ); imagejpeg( $dstim, $newfilename, 85 ); imagedestroy( $dstim ); imagedestroy( $srcim ); } if ($_POST['action'] == "addpic" && isset($_FILES['userfile'])) { if ($_FILES['userfile']['name'] != "") { if (($_FILES['userfile']['type'] == "image/pjpeg") || ($_FILES['userfile']['type'] == "image/jpeg")) { $tempnavn = str_replace("æ", "ae", $_FILES['userfile']['name']); $tempnavn = str_replace("ø", "oe", $tempnavn); $tempnavn = str_replace("å", "aa", $tempnavn); $filnavn = str_replace(" ", "_", $tempnavn); $gemfil = "temp/".$filnavn; if (!@move_uploaded_file($_FILES['userfile']['tmp_name'], $gemfil)) { echo "Billedet kunne ikke gemmes.<br>\n"; } else { $pic1 = ImageCreateFromJPEG($gemfil); $sizeX = ImageSX($pic1); $sizeY = ImageSY($pic1); $pic2 = ImageCreateFromGIF("images/fotologo.gif"); $lsizeX = ImageSX($pic2); $lsizeY = ImageSY($pic2); // Udregn hvor billedet skal placeres (nederste højre hjørne her) $posX = $sizeX - $lsizeX; $posY = $sizeY - $lsizeY; // Indsæt logo med 80% blanding ImageCopyMerge($pic1, $pic2, $posX, $posY, 0, 0, $lsizeX, $lsizeY, 40); // Gem billede ImageJPEG($pic1, "fotos/".$_POST["select"]."/".$filnavn, 100); // Ryd op (inkl. sletning af midlertidig fil) ImageDestroy($pic1); ImageDestroy($pic2); unlink($gemfil); resize( $filnavn, $filnavn, 600, 450 ); echo "Billedet blev gemt.<br>\n"; $db->ExecSQL("INSERT INTO snm_galleri (galleri,billede)VALUES('".$_POST["select"]."','".$_POST["select"]."/".$filnavn."')"); echo "<script language='Javascript'> alert ('Billedet er uploadet!') </script>"; echo "<script> location = 'admin_billeder.php' </script>"; } } } } else {
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Slettet bruger
05. september 2006 - 23:54
#1
Den melder ingen fejl eller? men der mangler da noget i slutningen af filen } else { ...? else hvad??
06. september 2006 - 00:39
#2
Bare slet funktionen, og lav det sammen med den anden kode: if ($_POST['action'] == "addpic" && isset($_FILES['userfile'])) { if ($_FILES['userfile']['name'] != "") { if (($_FILES['userfile']['type'] == "image/pjpeg") || ($_FILES['userfile']['type'] == "image/jpeg")) { $tempnavn = str_replace("æ", "ae", $_FILES['userfile']['name']); $tempnavn = str_replace("ø", "oe", $tempnavn); $tempnavn = str_replace("å", "aa", $tempnavn); $filnavn = str_replace(" ", "_", $tempnavn); $gemfil = "temp/".$filnavn; if (!@move_uploaded_file($_FILES['userfile']['tmp_name'], $gemfil)) { echo "Billedet kunne ikke gemmes.<br>\n"; } else { $pic1 = ImageCreateFromJPEG($gemfil); $sizeX = ImageSX($pic1); $sizeY = ImageSY($pic1); $pic2 = ImageCreateFromGIF("images/fotologo.gif"); $lsizeX = ImageSX($pic2); $lsizeY = ImageSY($pic2); // Udregn hvor billedet skal placeres (nederste højre hjørne her) $posX = $sizeX - $lsizeX; $posY = $sizeY - $lsizeY; // Indsæt logo med 80% blanding ImageCopyMerge($pic1, $pic2, $posX, $posY, 0, 0, $lsizeX, $lsizeY, 40); $wscale = $maxw / $sizeX; $hscale = $maxh / $sizeY; $scale = ( $hscale < $wscale ? $hscale : $wscale ); $nw = round( $sizeX * $scale, 0 ); $nh = round( $sizeY * $scale, 0 ); $dstim = imagecreatetruecolor( $nw, $nh ); imagecopyresampled( $dstim, $pic1, 0, 0, 0, 0, $nw, $nh, $ow, $oh ); // Gem billede imagejpeg( $dstim, "fotos/".$_POST["select"]."/".$filnavn, 100 ); //ImageJPEG($pic1, "fotos/".$_POST["select"]."/".$filnavn, 100); // Ryd op (inkl. sletning af midlertidig fil) ImageDestroy($pic1); ImageDestroy($pic2); ImageDestroy($dstim); unlink($gemfil); resize( $filnavn, $filnavn, 600, 450 ); echo "Billedet blev gemt.<br>\n"; $db->ExecSQL("INSERT INTO snm_galleri (galleri,billede)VALUES('".$_POST["select"]."','".$_POST["select"]."/".$filnavn."')"); echo "<script language='Javascript'> alert ('Billedet er uploadet!') </script>"; echo "<script> location = 'admin_billeder.php' </script>"; } } } } else { Den sidste else der er også lidt suspekt ;)
06. september 2006 - 00:40
#3
Hov, glemte at slette linjen: resize( $filnavn, $filnavn, 600, 450 );
Slettet bruger
06. september 2006 - 02:07
#4
:D ^^
06. september 2006 - 08:47
#5
Ingen fejl, men filen bliver ikke uploadet, så kan heller ikke tjekke om den resizer
06. september 2006 - 09:22
#6
.. og mens jeg ligger kigger på det, mangler vi ikke et sted hvor vi angiver størrelsen på billedet? (resize( $filnavn, $filnavn, 600, 450 );) ?
06. september 2006 - 09:23
#7
nu har jeg det således: filen blir uploadet, men ikke resized! tjek evt. mit forrige indlæg::: //Upload if ($_POST['action'] == "addpic" && isset($_FILES['userfile'])) { if ($_FILES['userfile']['name'] != "") { if (($_FILES['userfile']['type'] == "image/pjpeg") || ($_FILES['userfile']['type'] == "image/jpeg")) { $tempnavn = str_replace("æ", "ae", $_FILES['userfile']['name']); $tempnavn = str_replace("ø", "oe", $tempnavn); $tempnavn = str_replace("å", "aa", $tempnavn); $filnavn = str_replace(" ", "_", $tempnavn); $gemfil = "temp/".$filnavn; if (!@move_uploaded_file($_FILES['userfile']['tmp_name'], $gemfil)) { echo "Billedet kunne ikke gemmes.<br>\n"; } else { $pic1 = ImageCreateFromJPEG($gemfil); $sizeX = ImageSX($pic1); $sizeY = ImageSY($pic1); $pic2 = ImageCreateFromGIF("images/fotologo.gif"); $lsizeX = ImageSX($pic2); $lsizeY = ImageSY($pic2); // Udregn hvor billedet skal placeres (nederste højre hjørne her) $posX = $sizeX - $lsizeX; $posY = $sizeY - $lsizeY; // Indsæt logo med 80% blanding ImageCopyMerge($pic1, $pic2, $posX, $posY, 0, 0, $lsizeX, $lsizeY, 40); $wscale = $maxw / $sizeX; $hscale = $maxh / $sizeY; $scale = ( $hscale < $wscale ? $hscale : $wscale ); $nw = round( $sizeX * $scale, 0 ); $nh = round( $sizeY * $scale, 0 ); $dstim = imagecreatetruecolor( $nw, $nh ); imagecopyresampled( $dstim, $pic1, 0, 0, 0, 0, $nw, $nh, $ow, $oh ); // Gem billede ImageJPEG($pic1, "fotos/".$_POST["select"]."/".$filnavn, 100); // Ryd op (inkl. sletning af midlertidig fil) ImageDestroy($pic1); ImageDestroy($pic2); unlink($gemfil); echo "Billedet blev gemt.<br>\n"; $db->ExecSQL("INSERT INTO snm_galleri (galleri,billede)VALUES('".$_POST["select"]."','".$_POST["select"]."/".$filnavn."')"); echo "<script language='Javascript'> alert ('Billedet er uploadet!') </script>"; echo "<script> location = 'admin_billeder.php' </script>"; } } } } else {
06. september 2006 - 09:29
#8
Ah ja, linjerne: $wscale = $maxw / $sizeX; $hscale = $maxh / $sizeY; skal være: $wscale = 600 / $sizeX; $hscale = 450 / $sizeY;
06. september 2006 - 16:46
#9
Er ændret:(du får lige fulde kode for en sikkerheds skyld) og den resizer stadig ik //Upload if ($_POST['action'] == "addpic" && isset($_FILES['userfile'])) { if ($_FILES['userfile']['name'] != "") { if (($_FILES['userfile']['type'] == "image/pjpeg") || ($_FILES['userfile']['type'] == "image/jpeg")) { $tempnavn = str_replace("æ", "ae", $_FILES['userfile']['name']); $tempnavn = str_replace("ø", "oe", $tempnavn); $tempnavn = str_replace("å", "aa", $tempnavn); $filnavn = str_replace(" ", "_", $tempnavn); $gemfil = "temp/".$filnavn; if (!@move_uploaded_file($_FILES['userfile']['tmp_name'], $gemfil)) { echo "Billedet kunne ikke gemmes.<br>\n"; } else { $pic1 = ImageCreateFromJPEG($gemfil); $sizeX = ImageSX($pic1); $sizeY = ImageSY($pic1); $pic2 = ImageCreateFromGIF("images/fotologo.gif"); $lsizeX = ImageSX($pic2); $lsizeY = ImageSY($pic2); // Udregn hvor billedet skal placeres (nederste højre hjørne her) $posX = $sizeX - $lsizeX; $posY = $sizeY - $lsizeY; // Indsæt logo med 80% blanding ImageCopyMerge($pic1, $pic2, $posX, $posY, 0, 0, $lsizeX, $lsizeY, 100); $wscale = 600 / $sizeX; $hscale = 450 / $sizeY; $scale = ( $hscale < $wscale ? $hscale : $wscale ); $nw = round( $sizeX * $scale, 0 ); $nh = round( $sizeY * $scale, 0 ); $dstim = imagecreatetruecolor( $nw, $nh ); imagecopyresampled( $dstim, $pic1, 0, 0, 0, 0, $nw, $nh, $ow, $oh ); // Gem billede ImageJPEG($pic1, "fotos/".$_POST["select"]."/".$filnavn, 100); // Ryd op (inkl. sletning af midlertidig fil) ImageDestroy($pic1); ImageDestroy($pic2); unlink($gemfil); echo "Billedet blev gemt.<br>\n"; $db->ExecSQL("INSERT INTO snm_galleri (galleri,billede)VALUES('".$_POST["select"]."','".$_POST["select"]."/".$filnavn."')"); echo "<script language='Javascript'> alert ('Billedet er uploadet!') </script>"; echo "<script> location = 'admin_billeder.php' </script>"; } } } } else {
06. september 2006 - 20:04
#10
Linjen ImageJPEG($pic1, "fotos/".$_POST["select"]."/".$filnavn, 100); skal være: ImageJPEG($dstim, "fotos/".$_POST["select"]."/".$filnavn, 100);
06. september 2006 - 20:39
#11
altså nu er det rigtig str.(resized har virket) men billedet er helt sort?
06. september 2006 - 21:30
#12
Jeg er stiv: imagecopyresampled( $dstim, $pic1, 0, 0, 0, 0, $nw, $nh, $ow, $oh ); skal nok være: imagecopyresampled( $dstim, $pic1, 0, 0, 0, 0, $nw, $nh, $sizeX, $sizeY );
Vi tilbyder markedets bedste kurser inden for webudvikling