Avatar billede budda Nybegynder
27. januar 2006 - 12:56 Der er 4 kommentarer og
1 løsning

Problemer med at resize billeder.

Jeg har fået lavet en upload funktion.
Det er så meningen at jeg vil lave en miniatyre af billedet.

Well den uploader billedet.
her:
$ImgRealPath = "pictures/".$FileFinalName.".".$ImgType;
$ImgThumbPath = "pictures/thumbs/th_".$FileFinalName.".".$ImgType;
move_uploaded_file($Filen[tmp_name], $ImgRealPath); //Upload filen

Så vil jeg hente informationer fra billedet:
    $src_img = imagecreatefromjpeg($ImgRealPath);
        $origw = imagesx($src_img);
      $origh = imagesy($src_img);

Finde de nye variabler (dette sker rigtigt)

Og til sidst oprette billedet:
    $image_p = imagecreatetruecolor($tmWidth, $tmHeight);
    imagecopyresampled($image_p, $scr_img, 0, 0, 0, 0, $tmWidth, $tmHeight, $origw, $origh);
    imagejpeg($image_p, "$ImgThumbPath", 100);

Så når jeg uploader får jeg 1 sort billeder som miniatyre..
Og jeg får fejlen:
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/domaindk/4W66Y6N2/htdocs/domain.dk/img_resize.php on line 142

Nogen der kan hjælpe??
Avatar billede domaz.dk Novice
27. januar 2006 - 13:03 #1
ImageCopyResampled($image_p,$scr_img,0,0,0,0,$tmWidth,$tmHeight,ImageSX($scr_img),ImageSY($scr_img));
Avatar billede domaz.dk Novice
27. januar 2006 - 13:10 #2
doh... læste ikke dit script ordentlig igennem kan jeg se...
Avatar billede domaz.dk Novice
27. januar 2006 - 13:20 #3
men ved ikk hva der går galt... syns det ligner meget det som jeg os har "lavet" i mit upload script... kan lige poste den så kan du måske se en forskel...


<?php
require("../functions/sql.php");
sql_kontakt();

// width & height på billedet
// sæt height til 'auto' hvis den skal skalere den efter $width
$width_img = 400;
$height_img = "auto";
$width_tmp = 60;
$height_tmp = 45;

// Kvaliteten på billedet (0-100)
$img_quality = 90;
$tmp_quality = 60;

//filtyper der er tilladt (kun .jpg indtil videre)
$filetype_granted = array("jpg", "jpeg");





if ($_POST['submit_upload']) {
   
    $g_id = $_POST['g_id'];
   
    if (!empty($g_id)) {

        for($i = 0; $i < count($_FILES["fil"]["name"]); $i++) {

            if ($_FILES["fil"]["name"][$i] !="") {
       
                $foto = 1;
                $fejl = 0;

                //Her skal filen flyttes fra
                $src = $_FILES['fil']['tmp_name'][$i];

                //Hvilken type fil arbejder vi med?
                $ext = strtolower(end(explode(".", $_FILES['fil']['name'][$i])));
           
                if(!in_array($ext, $filetype_granted)) {
                    echo "Filen's filtype (.".$ext.") er ikke tilladt. Filen '".$_FILES["fil"]["name"][$i]."' kan derfor ikke uploades!<br><br>\n";
                    $fejl = 1;
                }

                if ($fejl == 0) {

                    //Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
                    $tid = time();
                    $nytNavn = $tid . "(".($i + 1).")." . $ext;

                    //Her er vores destination for det store billede
                    $dst = $_SERVER["DOCUMENT_ROOT"]."/v8/gallery/cache/" . $nytNavn;
           
                    //her uploades det store billede:
                    move_uploaded_file($src, $dst);



                    //billed-funktioner:
                    $image = $dst;

                    //hvis billedet eksisterer
                    if(file_exists($image)) {

                        //billedet eksisterer
                        $foto = 1;

                        //find størrelsen
                        $imgsize = getimagesize($image);

                        //sæt det nye billedes bredde til $width,
                        //og regn højden ud så propertionerne passer
                        if ($height_img == "auto") {
                            $height_img = $imgsize[1] / ($imgsize[0] / $width_img);
                        }

                        //lav et nyt, blankt billede
                        $dst_img = imagecreatetruecolor($width_img,$height_img);

                        //åbn kildebilledet
                        $src_img = ImageCreateFromJpeg("$image");

                        //kopiér og resize kildebilledet over i det nye billede
                        ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width_img,$height_img,ImageSX($src_img),ImageSY($src_img));

                        //lav output til mappen /tmp/
                        ImageJpeg($dst_img, "../gallery/$g_id/" . $nytNavn, $img_quality);
           
                        //sæt url'en til billedet
                        $imgurl = "gallery/$g_id/" . $nytNavn;
               
       
                        //find størrelsen
                        $imgsize = getimagesize($image);

                        //sæt det nye billedes bredde til $width,
                        //og regn højden ud så propertionerne passer
                        if ($height_tmp == "auto") {
                            $height_tmp = $imgsize[1] / ($imgsize[0] / $width_tmp);
                        }

                        //lav et nyt, blankt billede
                        $dst_tmp = imagecreatetruecolor($width_tmp,$height_tmp);

                        //åbn kildebilledet
                        $src_tmp = ImageCreateFromJpeg("$image");

                        //kopiér og resize kildebilledet over i det nye billede
                        ImageCopyResampled($dst_tmp,$src_tmp,0,0,0,0,$width_tmp,$height_tmp,ImageSX($src_tmp),ImageSY($src_tmp));

                        //lav output til mappen /tmp/
                        ImageJpeg($dst_tmp, "../gallery/$g_id/tmp/" . $nytNavn, $tmp_quality);
           
                        //sæt url'en til billedet
                        $tmpurl = "gallery/$g_id/tmp/" . $nytNavn;
       
                    } else {

                        //foto findes ikke
                        $foto = 0;
                    }

                    //Her ligges oplysningerne ind databasen – huske at connecte til den!
                    if ($foto != 0) {
                        unlink($dst);
                        $query    = "INSERT INTO g_pictures (g_id, imgurl, tmpurl) VALUES ('$g_id','$imgurl','$tmpurl')";
                        mysql_query($query);
                    } else {
                        echo "Der skete en fejl ved upload.<br>".
                            "\nPrøv igen eller tjek om sti'en til din 'cache' er rigtig<br><br>\n";
                    }
                }
            }
        }
    } else {
        echo "Du skal angive et galleri 'id'...<br><br>\n";
    }
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>

<body>

<br>
hvor mange billeder skal uploades:<br>
<a href="?af=5">5</a>&nbsp;
<a href="?af=10">10</a>&nbsp;
<a href="?af=20">20</a>&nbsp;
<a href="?af=30">30</a>&nbsp;
<a href="?af=40">40</a>&nbsp;
<a href="?af=50">50</a>&nbsp;
<a href="?af=75">75</a>&nbsp;
<a href="?af=100">100</a>&nbsp;

<form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<table cellspacing="2" cellpadding="2" border="0">

<tr>
    <td>galleri id:</td>
    <td><input type="text" name="g_id" value="" size="5" style="font: 10px Arial;"></td>
</tr>

<?php
if (empty($_GET['af'])) {
    $antal_filer = 1;
} else {
    $antal_filer = $_GET['af'];
}
for($i = 0; $i < $antal_filer; $i++) {
?>

<tr>
    <td>vælg fil:</td>
    <td><input name="fil[]" type="file" style="width: 700px; font: 10px Arial;"></td>
</tr>

<?php
}
?>

<tr>
    <td></td>
    <td><input type="submit" name="submit_upload" value="Send File" style="font: 10px Arial;"> </td>
</tr>

</table>
</form>

</body>
</html>
Avatar billede budda Nybegynder
27. januar 2006 - 14:11 #4
Ja tak :)
Så virker det :)

Kommentar til folk med samme problem:
HUSK $_SERVER[DOCUMENT_ROOT] :)

og omdøb variablen til et nyt navn (det hjalp her over:)

Smit et svar mester
Avatar billede domaz.dk Novice
27. januar 2006 - 14:17 #5
okay... (:
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel