• User Attivo

    Ridimensionare immagine

    ciao,
    io usao uno script per creare delle immagine di certe misure.
    Di soltio lo uso per creare thumb, quindi ridemensionavo immagini gia presenti sul server.
    Questa volta invece ho bisogno di ridimensionare le immagini già durante l'upload..ma mi da questo errore:

    Warning: getimagesize(Array[tmp_name]) [function.getimagesize]: failed to open stream: No such file or directory in C:\Documents and Settings\Pc Alex\Desktop\host\gallovip\admin\crea_donna.php on line 15

    Warning: Division by zero in C:\Documents and Settings\Pc Alex\Desktop\host\gallovip\admin\crea_donna.php on line 19

    Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\Documents and Settings\Pc Alex\Desktop\host\gallovip\admin\crea_donna.php on line 23
    Impossibile creare l immagine

    Ecco lo script:
    $imagesize=GetImageSize("$_FILES[immagine][tmp_name]");
    $width=$imagesize[0];
    $height=$imagesize[1];
    if ( $width > $height) { $thumbWidth = 200; $thumbHeight = $height/($width/200); }
    else { $thumbWidth = $width/($height/250); $thumbHeight = 250; }
    $img = "$_FILES[immagine][tmp_name]";
    $dest = "$path/donne/$_POST[categoria]/$cartella/$spazi";
    $thumbComp = 5000000;
    $thumb = imageCreateTrueColor ($thumbWidth, $thumbHeight) or die("Impossibile creare l immagine");
    $src = imagecreatefromjpeg($img) or die ("Impossibile aprire l'immagine originale");
    imagecopyresized($thumb, $src, 0, 0, 0, 0, $thumbWidth, $thumbHeight, imageSx($src), imageSy($src)) or die("Impossibile ridimensionare l'immagine");
    imagejpeg($thumb, $dest, $thumbComp) or die("Impossibile salvare l immagine");


  • User Attivo

    L'errore è che non trova il file.
    Prova innanzitutto a modificare questa riga:

    $imagesize=GetImageSize($_FILES[immagine][tmp_name]);

    se non funziona fai un
    print_r($_FILES);

    E vedi cosa c'è.


  • User Attivo

    @Senamion said:

    L'errore è che non trova il file.
    Prova innanzitutto a modificare questa riga:

    $imagesize=GetImageSize($_FILES[immagine][tmp_name]);

    se non funziona fai un
    print_r($_FILES);

    E vedi cosa c'è.

    Gia' provato...non c'è nulla..


  • User Attivo

    Ma la form da cui parte il caricamento ha un parametro di questo tipo?

    <form enctype="multipart/form-data"
    

  • User Attivo

    @Senamion said:

    Ma la form da cui parte il caricamento ha un parametro di questo tipo?

    ><form enctype="multipart/form-data"
    >```
     
    Si si.. se lo faccio con un file presente sul server funge tutto...

  • User

    Con le GD installate e dopo aver caricato l'immagine sul server usa questa funzione:

    function resize_img($source, $destination, $width, $height)
    {
        if(!($sourceImage = @imagecreatefromjpeg($source)))
           {
               $image = imagecreate($width, $height);
               $colorWhite = imagecolorallocate($image, 255, 255, 255);
               $colorBlack = imagecolorallocate($image, 0, 0, 0);
               imagefill($image, 0, 0, $colorWhite);
               imagestring($image, 1, 1, 10, "Immagine non disponibile", $colorBlack);
               imagejpeg($image, $destination);
               return(FALSE);
        }
    
        $destinationImage = imagecreatetruecolor($width, $height);
    
           imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $width, $height, imagesx($sourceImage), imagesy($sourceImage));
           imagejpeg($destinationImage, $destination);
    }
    
    ```Gli argomenti da passare sono nell'ordine (immagine di origine,immagine di destinazione,larghezza in pixel,altezza in pixel) ad esempio se vuoi ridimensionare un'immagine a 200x300 sovrascrivendola chiama:```
    resize_img($path,$path,200,300)