• ModSenior

    Ho provato in locale, e funziona posta il coice che hai messo completo


  • User Attivo

    @Thedarkita said:

    Ho provato in locale, e funziona posta il coice che hai messo completo

    ok..qesto e il codice completo dello script
    [PHP]
    <?
    $source_file='/membri/italiawebchat/foto/';
    $output_file='/membri/italiawebchat/miniature/';
    $size='100';
    $quality='10';

    function resize($source_file, $output_file, $size, $quality)
    {
    //jpeg resizer
    $success = false;
    list($width, $height) = getimagesize($source_file);

    $new_width = intval(($width * $size) / max($width, $height));
    $new_height = intval(($height * $size) / max($width, $height));

    if ( $image_in = imagecreatefromjpeg($source_file) )
    {
    if ( $image_out = imagecreatetruecolor($new_width, $new_height) )
    {
    imagecopyresampled($image_out, $image_in, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    if ( imagejpeg($image_out, $output_file, $quality) )
    {
    $success = true;
    }
    imagedestroy($image_out);
    }
    imagedestroy($image_in);
    }
    return $success;
    }
    //funzione che richiama il tutto
    $a = resize('img.jpg', 'img-resize.jpg', 100, 10)

    ?>
    [/PHP]
    ho creato questa pagina e l ho insrrita nel ser web,l ho richiamata attravers il browser ma nulla....


  • ModSenior

    Dovrebbe darti un errore di sintassi...

    [php]$a = resize('img.jpg', 'img-resize.jpg', 100, 10);[/php]
    manca il punto e virgola, img.jpg deve essere il nome dell'immagine che vuoi ridimensionare controlla esista sul server


  • User Attivo

    @Thedarkita said:

    Dovrebbe darti un errore di sintassi...

    [php]$a = resize('img.jpg', 'img-resize.jpg', 100, 10);[/php]
    manca il punto e virgola, img.jpg deve essere il nome dell'immagine che vuoi ridimensionare controlla esista sul server

    ah ecco..allora manca un passaggio..cioè questo script nn e completo..praticamente lo script dovrebbe ridimensionares enza che io inserisca il nome dell immagine...praticamente dovrebbe funzionare cosi'..
    tutte le immagini jpeg e gif presenti nella cartella originale foto..di queste ne dovrebbe essere fatta una copia thumbnails nella cartella miniature...cio' però senza che io inserisca il nome dell immagine ....risulta possibile la cosa?

    (ora ridimensiona..era un problema di percorso della foto)
    [PHP]

    $a = resize('foto/maglia.jpg', 'miniature/img-resize.jpg', 100, 10) ;[/PHP]


  • ModSenior

    Ho modificato la funzione per fargli riconoscere gif jpg e png
    adesso genera le anteprime di tutti i file in una cartella.

    [php]<?
    function resize($source_file, $output_file, $size, $quality)
    {
    //jpeg resizer
    $success = false;
    list($width, $height) = getimagesize($source_file);

    $new_width = intval(($width * $size) / max($width, $height));
    $new_height = intval(($height * $size) / max($width, $height));

    // Formato immagine
    $l = strlen($source_file);
    if($source_file[$l-1] == 'f' && $source_file[$l-2] == 'i' && $source_file[$l-3] == 'g')
    $image_in = imagecreatefromgif($source_file);
    elseif($source_file[$l-1] == 'g' && $source_file[$l-2] == 'n' && $source_file[$l-3] == 'p')
    $image_in = imagecreatefrompng($source_file);
    else
    $image_in = imagecreatefromjpeg($source_file);

    if ( $image_out = imagecreatetruecolor($new_width, $new_height) )
    {
    imagecopyresampled($image_out, $image_in, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    if ( imagejpeg($image_out, $output_file, $quality) )
    {
    $success = true;
    }
    imagedestroy($image_out);
    }
    imagedestroy($image_in);

    return $success;
    }

    // directory immagini
    $img_dir = 'image/';
    $img_anteprime = 'anteprime/';

    // apro la directory
    $handle = opendir($img_dir);

    // Creo un ciclo ed utilizzo readdir per esplorare il contenuto della directory
    while (false !== ($files = readdir($handle)))
    {
    // Genero le anteprime
    if ($files != "." && $files != "..")
    {
    $a = resize($img_dir.$files, $img_anteprime.$files, 100, 10) ;
    }

    }
    ?> [/php]

    NB se all'interno della cartella ci sono file php html o altre estenzioni lo script cercherà di creare un anteprima ugualmente...


  • User Attivo

    giu' il cappello...nn ho finito di dire ciò che volevo fare...che già hai sviluppato un codice perfetto..grande..complimenti:)

    cmq..avevo risolto il problema di prima facendo questa modifica
    [PHP]
    $a = resize('foto/maglia.jpg', 'miniature/img-resize.jpg', 100, 10) ;
    [/PHP]
    aggiungendo i percorsi:)e funzionava...ora mi leggo ancora una volta il codice che hai modificato te e cerco di capire come hai fatto...:)le cose e importante capirle:)
    praticamenet in questa parte qui'
    [PHP]
    // Formato immagine
    $l = strlen($source_file);
    if($source_file[$l-1] == 'f' && $source_file[$l-2] == 'i' && $source_file[$l-3] == 'g')
    $image_in = imagecreatefromgif($source_file);
    elseif($source_file[$l-1] == 'g' && $source_file[$l-2] == 'n' && $source_file[$l-3] == 'p')
    $image_in = imagecreatefrompng($source_file);
    else
    $image_in = imagecreatefromjpeg($source_file);

    if ( $image_out = imagecreatetruecolor($new_width, $new_height) )
    {
    imagecopyresampled($image_out, $image_in, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    if ( imagejpeg($image_out, $output_file, $quality) )
    {
    $success = true;
    }
    imagedestroy($image_out);
    }
    imagedestroy($image_in);

    return $success;
    } [/PHP]
    con strlen e stato fatto un controllo per ottenere le lunghezze delle stringhe contenute
    nella variabile$source_file ,
    if($source_file[$l-1] == f questa vuol dire... se nella variabile $source_file l utima lettera e uguale a f...:) qui nn ho capito [$l-1] se si aggiungeva solo [-1] non andava?


  • User Attivo

    ok...scusami avevo detto una c.....ci ho ragionato un po su e ho capito che solo con il -1 non poteva mai andare:bigsmile:
    Cmq...
    t in questa parte qui'
    [PHP]
    // Formato immagine
    $l = strlen($source_file);
    if($source_file[$l-1] == 'f' && $source_file[$l-2] == 'i' && $source_file[$l-3] == 'g')
    $image_in = imagecreatefromgif($source_file);
    elseif($source_file[$l-1] == 'g' && $source_file[$l-2] == 'n' && $source_file[$l-3] == 'p')
    $image_in = imagecreatefrompng($source_file);
    else
    $image_in = imagecreatefromjpeg($source_file);

    if ( $image_out = imagecreatetruecolor($new_width, $new_height) )
    {
    imagecopyresampled($image_out, $image_in, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    if ( imagejpeg($image_out, $output_file, $quality) )
    {
    $success = true;
    }
    imagedestroy($image_out);
    }
    imagedestroy($image_in);

    return $success;
    } [/PHP]
    con strlen e stato fatto un controllo per ottenere le lunghezze delle stringhe contenute
    nella variabile$source_file ,
    if($source_file[$l-1] == f qui si parte con un if (se) poi si aggiunge la variabile principale ($source_file)contenente l acartella delle immagini in formato originale,a cui poi vengono aggiunti ulteriori parametri [$l-1]==f,praticamente qui' viene conteggiata la stringa partendo dall ultima lettera,se l ultima lettera e uguale a f,qui invece [$l-2]==i se la penultima lettera e uguale a i,qua [$l-3]==g se la terzultima lettera e ugualea g,
    $image_in = imagecreatefromgif($source_file); crea un immagine in gif.
    ho detto tutto giusto?:smile5:
    (mi sto leggendo su di un sito tutte le funzioni dalla A alla Z in ordine alfabetico);)


  • ModSenior

    Gli if controllano l'estenzione del file se gif,jpg o png perchè ognuna delle 3 estenzione ha una funzione apposita


  • User Attivo

    @Thedarkita said:

    Gli if controllano l'estenzione del file se gif,jpg o png perchè ognuna delle 3 estenzione ha una funzione apposita

    Questo controllo...viene fatto come ho descritto io sopra?Cioè.. -1 ultima lettera = a f penultima lettera uguale a i ect...?


  • ModSenior

    si


  • User Attivo

    @Thedarkita said:

    si

    Ok..ho capito...Grazie Thedarkita;)


  • ModSenior

    Prego 😉