Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: resize e taglia php

  1. #1

    resize e taglia php

    ragazzi avrei bisogno di ritagliare l'immagine in modo proporzionale, come posso fare? ho visto in giro diverse classi, ma sono complesse e non le ho ben capite, qualcuno può aiutarmi?

    e come lo potrei implementare al mio normale upload d'immagini:
    Codice PHP:
    $a=rand(19);
    $b=rand(19);
    $c=rand(19);
    $d=rand(19);
    $e=rand(19);
    $f=rand(19);
    $ante=$a.$b.$c.$d.$e.$f;
    //immagine principale
    $uploaddir "./uploads/";
    $uploadfile $ante .$_FILES['foto1']['name'];
    $uploadfile1 $uploaddir .$ante .$_FILES['foto1']['name'];
    $time=time();
    if (
    move_uploaded_file($_FILES['foto1']['tmp_name'], $uploadfile1)) {
        print 
    "ok ";
    } else {
        print 
    "Fallito";
    }
    $result mysql_query ("insert into foto(foto) values('$uploadfile1')"); 
    fini a qui ci siamo, adesso vorrei un classe che mi tagli in modo proporzionale le immagini a una misura che stabilisco io in seguito.

  2. #2
    SmartImage.class.php
    Io uso sempre questa. Molto semplice e funziona bene
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  3. #3
    potresti farmi un esempio per favore, te ne sarei grada?

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    io definisco quanto deve essere la larghezza delle foto, in modo da avere uniformità.
    fai conto:
    Codice PHP:
    $larghezza 450
    poi faccio
    Codice PHP:
    list($width$height$type$attr) = getimagesize($uploadfile); //$uploadfile è il percorso del file compreso del nome del file
    $source imagecreatefromjpeg($uploadfile);
    $numero = ($larghezza/$width); // ottengo un numero tra 0 e 1, che dovrò usare nella riga sotto 

    //creo un file delle dimensioni proporzionate, con larghezza  uguale a $width*$numero che già so che fa 450..
    $thumb imagecreatetruecolor($width*$numero$height*$numero);
    imagecopyresampled($thumb$source0000$width*$numero$height*$numero$width$height);
    //salvo l'immagine. $path è il percorso + il nome della immagine
    imagejpeg($thumb$path65); 
    ovviamente faccio questa operazione per tutte le dimensioni che mi servono.. fai conto una miniatura di 200, quella di 450 e quella grande di 700..

  5. #5
    Originariamente inviato da gueststar
    potresti farmi un esempio per favore, te ne sarei grada?
    Codice PHP:
    include ('SmartImage.class.php');
    $path "img/";    //qui ci metti la directory dove vuoi salvare l'immagine
    move_uploaded_file($_FILES['img']['tmp_name'], $path.$_FILES['img']['name']);
    chmod($path.$_FILES['img']['name'],0777);
                
    $qualita 90;
    $height 200;
    $width 200;
    $img = new SmartImage($path.$_FILES['img']['name']);
    $img->resize($width$heighttrue);
    $img->saveImage($path.$_FILES['img']['name'], $qualita); 
    allora...qualche commento:

    1. chmod($path.$_FILES['img']['name'],0777); non è necessario se non intendi sovrascrivere il file che hai appena uploadato (quindi se salvi l'immagine ridimensionata in un'altra directory oppure nella stessa directory ma con un altro nome);

    2. $img->resize($width, $height, true); impostando l'ultimo parametro true, viene effettuato il ritaglio e il resize alla dimensioni specificate in $height e $width (in pixel). Se lo imposti a false viene considerata la misura (altezza/larghezza) più piccola che hai inserito e l'altra viene adattata di conseguenza

    V.I.S.T.A. --> Virus Inside, Switch To Apple

  6. #6
    grazie ragazzi vi faccio sapere se mi riesce!!!

  7. #7
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    Originariamente inviato da gueststar
    se mi riesce!!!
    SE TI RIESCE!?!?!?

    QUA SUL FORUM ABBIAMO UCCISO PER MOOOOLTO MENO!!!

  8. #8
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ..ti è riuscito???

    io ho provato ma mi carica l'immagine e NON la ridimensiona..
    il codice è paro-paro al tuo
    Codice PHP:
    include ('SmartImage.class.php');
    $path =  "../resized/";    //qui ci metti la directory dove vuoi salvare l'immagine
    move_uploaded_file($_FILES['img']['tmp_name'], $path.$_FILES['img']['name']);
    chmod($path.$_FILES['img']['name'],0777);
                
    $qualita 80;
    $height 200;
    $width 200;
    $img = new SmartImage($path.$_FILES['img']['name']);
    $img->resize($width$heighttrue);
    $img->saveImage($path.$_FILES['img']['name'] , $qualita); 
    la $path l'ho provata anche nella forma $_SERVER[DOCUMENTì_ROOT] ma fa sempre e solo l'upload..

  9. #9
    prova a cambiare il nome dell'immagine ridimensionata.....magari il problema è nella sovrascittura del file precedentemente creato
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  10. #10
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    rosico.. ma tanto, perchè mi piaceva questo "ordine" rispetto al macello di codice che produco io..
    però anche così non va
    Codice PHP:
    include ('SmartImage.class.php');
    $path =  "../resized/";    //qui ci metti la directory dove vuoi salvare l'immagine
    $path2 =  "../resized/mini/";    //qui ci metti la directory dove vuoi salvare l'immagine

    move_uploaded_file($_FILES['img']['tmp_name'], $path.$_FILES['img']['name']);
    chmod($path.$_FILES['img']['name'],0777);
                
    $qualita 80;
    $height 200;
    $width 200;
    $img = new SmartImage($path.$_FILES['img']['name']);
    $img->resize($width$heighttrue);
    $img->saveImage($path2.$_FILES['img']['name'] , $qualita); 
    nella cartella mini non salva nulla, pur avendo messo i permessi a 777...

    mi autoaggiorno: se metto nell'ultima riga
    $img->saveImage($path. "NUOVONOME.jpg" , $qualita);
    funziona, nel senso che la ridimensiona.
    ma di salvare nella cartella $path2 non se ne parla proprio..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.