Visualizzazione risultati 1 fino 7 di 7

Discussione: resize immagini e taglio

  1. #1
    Guest

    Question resize immagini e taglio

    ciao, usando gd2 riesco perfettamente a fare il resize delle immagini, cioè mi creo i thumb...
    sapete se è possibile ritagliare il centro dell'immagine e fare il resize su quello?
    cioè se ho un'immagine che è 500x500 px, posso ritagliare un quadrato al centro dell'immagine grande, ad esempio, 200x200px e fare il resize su questo?

  2. #2
    Guest

    Predefinito

    Attraverso le GD puoi fare tutti i ritagli e resize che vuoi, ma non ho capito bene quello che chiedi.
    Dici che vuoi fare un resize su un ritaglio... non ho capito cosa vuol dire!
    Vuoi ridimensionare solo una parte dell'immagine?
    Vuoi che la thumb sia solo una parte dell'immagine anzichè tutta? (quindi niente resize, ma solo ritaglio dell'originale)


    Ciaooooo!!!!!!

  3. #3
    Guest

    Predefinito

    mi spiego meglio:
    io ho un'immagine 500x500 di un telefono, solo che il telefono occupa solo la parte centrale dell'immagine e ai lati ha circa 100 px bianchi.
    per fare un thumb decente, vorrei prendere solo un quadrato di 200 px al centro dell'immagine e resizzare questo...quindi dovrei prima creare il ritaglio, salvarlo sul server poi resizzarlo..
    il resize non è un problema, ma non sò come fare il ritaglio

  4. #4
    Guest

    Predefinito

    se ho capito bene frs qst codice può fare al caso tuo:
    Codice PHP:
    <?
    $maxx
    = 200;
    $maxy = 200;
    $source_image_URL = 'a.jpg';
    list(
    $width, $height, $type) = getimagesize($source_image_URL);
    switch(
    $type){
    case
    1:
    $source_image = imagecreatefromgif($source_image_URL);
    break;
    case
    2:
    $source_image = imagecreatefromjpeg($source_image_URL);
    break;
    case
    3:
    $source_image = imagecreatefrompng($source_image_URL);
    break;
    }
    $percent1 = $width / $maxx;
    $percent2 = $height / $maxy;
    $percent = max($percent1,$percent2);
    $new_eight = round($height /$percent);
    $new_width = round($width /$percent);
    $dest_image = imagecreatetruecolor($new_width, $new_eight);
    imagecopyresampled ($dest_image, $source_image, 0, 0, 100, 100, $new_width, $new_eight, $maxx, $maxy);
    header("Content-type: image/jpeg");
    imagejpeg($dest_image);
    imagedestroy($dest_image);
    imagedestroy($source_image);
    ?>

  5. #5
    Guest

    Predefinito

    bhè io per fare il resize uso questa funzione:
    Codice PHP:
    function resize($nomeimage, $source_path, $destination_path, $par, $quanto){
    list(
    $width, $height, $type, $attr) = getimagesize($source_path.$nomeimage);
    if(
    $par=="w"){
    $conv=$height/$width;
    $new_width=$quanto;
    $new_height=$conv*$new_width;
    $new_height=number_format($new_height, 0);
    }else if(
    $par=="h"){
    $conv=$width/$height;
    $new_height=$quanto;
    $new_width=$conv*$new_height;
    $new_width=number_format($new_width, 0);
    }
    $compression=100;
    $destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");
    $srcimg=ImageCreateFromJPEG($source_path.$nomeimage) or die("Problemi nell'aprire l'immagine");
    ImageCopyResized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento");
    ImageJPEG($destimg,$destination_path.$nomeimage,$compression) or die("Problemi nel salvataggio");
    }
    premesso che che le mie immagini saranno sempre jpg.
    così faccio il resize, ma se ho capito bene mi conviene prima ritagliare poi resizzare il ritaglio, giusto?
    e...quindi? la funzione per ritagliare qual'è? e come gli passo i valori?

  6. #6
    Guest

    Predefinito

    la funzione x ritaglaire è la stessa di qll ke usi x fare il resize, sl ke i parametri dovranno essere leggermente diversi...
    vedi quei 4 zeri? gli ultimi due servono ad indicare il punto da cui dovrai inziare a ritagliare infatti io li ho messi a 100...poi gli ultimi 2 parametri indicano il punto fino a cui devi leggere l'immagine, dato ke le dimesioni dovranno essere 200 io ho messo 200...spero di essere stato kiaro...cmq qst è la tua funzione riadattata:
    Codice PHP:
    function resize($nomeimage, $source_path, $destination_path, $par, $quanto){
    list(
    $width, $height, $type, $attr) = getimagesize($source_path.$nomeimage);
    if(
    $par=="w"){
    $conv=$height/$width;
    $new_width=$quanto;
    $new_height=$conv*$new_width;
    $new_height=number_format($new_height, 0);
    }else if(
    $par=="h"){
    $conv=$width/$height;
    $new_height=$quanto;
    $new_width=$conv*$new_height;
    $new_width=number_format($new_width, 0);
    }
    $compression=100;
    $destimg=imagecreatetruecolor($new_width,$new_heig ht) or die("Problemi nelle creazioni dell'immagine");
    $srcimg=ImageCreateFromJPEG($source_path.$nomeimag e) or die("Problemi nell'aprire l'immagine");
    ImageCopyResized($destimg,$srcimg,0,0,100,100,$new_wid th,$new_height,$new_width,$new_height) or die("Problemi nel ridimensionamento");
    ImageJPEG($destimg,$destination_path.$nomeimage,$c ompression) or die("Problemi nel salvataggio");
    }
    nn l'ho provato...ma dovrebbe funzionare...

  7. #7
    Guest

    Predefinito

    grazie mille ora funziona tutto alla perfezione!
    ho aggiunto 2 righe per calcolare di volta in volta le dimensioni dell'immagine e stabilirne il centro, ora và che è una meraviglia!
    thx!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •