Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Creare anteprima di immagine con PHP

    Ciao,

    volevo sapere come ridimensionare un' immagine però tagliandone le estremità.
    mi spiego meglio: da un immagine 1000x500 px trasformarla in 500x500 px senza deformarla, ma tagliandone i bordi.
    un' po come quando si modifica il canvas/area di lavoro con photoshop.

    grazie

  2. #2
    Io faccio cosi.

    Codice PHP:
    function make_thumb_square($image,$a,$l,$final,$dir_to_put,$path)
    {

        
    # mi ciuccio l'estensione per creare le immagini
        
    $estensione explode(".",strtolower($image));
        
    $ext array_pop($estensione);

        
    # preparo lo switch per il tipo esatto di funzione in base al tipo d'immagine
        
    switch($ext){
        default:
            
    $funzione_image_create "ImageCreateFromJpeg";
            
    $funzione_image_new "ImageJpeg";
        break;
        case 
    "jpg":
            
    $funzione_image_create "ImageCreateFromJpeg";
            
    $funzione_image_new "ImageJpeg";
        case 
    "jpeg":
            
    $funzione_image_create "ImageCreateFromJpeg";
            
    $funzione_image_new "ImageJpeg";
        break;
        case 
    "png":
            
    $funzione_image_create "ImageCreateFromPng";
            
    $funzione_image_new "ImagePng";
        break;
        case 
    "gif":
            
    $funzione_image_create "ImageCreateFromGif";
            
    $funzione_image_new "ImageGif";
        break;
        }

        
    $quality_thumb = ($ext == 'png') ? '6' '60';

        
    # vedo in quale cartella si trova l'immagine
        
    $file $path.'/'.urldecode($image);
        
    $file_thumb $path.'/'.$dir_to_put.'/'.urldecode($image);
      
        
    $centerX $a/2;
        
    $centerY $l/2;
        
        if( 
    $l $a ){
          
    $luy 0;
          
    $lux $centerY-$centerX;
          
    $rdy $a;
          
    $rdx $a;
        }
        else{
          
    $lux 0;
          
    $luy $centerX-$centerY;
          
    $rdx $l;
          
    $rdy $l;
        }
        
        
    # restituisce un elemento identificativo per l'immagine data
        
    $img_original $funzione_image_create($file);

        
    //ImageCreateTrueColor: funzione per creare un'immagine con illimitati colori e con altezza e lunghezza dati
        
    $img_final ImageCreateTrueColor($final,$final);
        
        
    # funzione per ridurre le immagini: 
        
    imagecopyresampled($img_final$img_original00$lux$luy$final$final$rdx$rdy);
        
        
    # questa funzione crea fisicamente il nuovo file
        
    $funzione_image_new($img_final$file_thumb$quality_thumb);
        
        
    # queste due funzioni liberano la memoria dalle immagini create
        
    ImageDestroy($img_original);
        
    ImageDestroy($img_final);
        
    # end make_thumb_square 
    Ciao!

  3. #3
    ok funziona grazie mille.

    se serve a qualcuno metto anche la funz da richiamare:

    make_thumb_square("img.jpg",2300,1600,500,"thumb/","public/");

    prende l' img.jpg che si trova in public/ ha dimensiaoni 1600*2300, e mette in public/thumb
    img.jpg di 500*500


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 © 2024 vBulletin Solutions, Inc. All rights reserved.