2012-06-18 5 views
5

C'è un file in archivio nel server, che ad esempio ha una dimensione di 400 X 600 pixel. Ma in diverse parti dei siti web, abbiamo bisogno della stessa immagine di dimensioni diverse. Per la miniatura, solitamente abbiamo bisogno di 50 X 50 pixel e se scegliamo di scaricare la stessa immagine con la dimensione originale, ci vorrebbe più tempo e il caricamento della pagina rallenterebbe. Se l'immagine viene ridimensionata, la sua dimensione andrebbe molto più in basso (come da 500 KB a 50 KB). Quindi, quello che voglio è, prima che il browser scarichi l'immagine, il server dovrebbe ridimensionare l'immagine alle dimensioni come richiesto nello script PHP.PHP - Ridimensiona l'immagine nel server prima che il browser la scarichi

+4

Il modo migliore di farlo è quello di creare la miniatura di 50 * 50 durante il caricamento dell'immagine originale sul server . in modo che, in base al requisito, è possibile estrarre l'immagine pertinente. – neeraj

+0

potremmo avere migliaia di utenti. memorizzare diverse versioni di immagini di ognuna di esse richiederebbe molto spazio di archiviazione ... –

+3

farlo live e non memorizzarlo significa che lo farai migliaia di volte e ad un certo punto deciderete di memorizzarlo comunque. –

risposta

1

È necessario inserire il codice in thumbnail code in un nuovo file, diciamo image.php e quindi utilizzare questo script come src del tag img con i parametri del nome del file immagine, larghezza e altezza.

<img src="http://path-to-directory/image.php?img=abc.jpg&width=50&height=50" /> 

È necessario modificare "DSC01088.jpg" per echo $ _GET ['img']; dopo una corretta convalida.

1

Avrete bisogno della libreria GD di PHP, quindi date un'occhiata a this e this e quindi collegate un file php che ridimensiona invece dell'immagine stessa.

Nota anche il suggerimento di neeraj, quindi è possibile ridimensionarlo durante il caricamento per ottenere prestazioni migliori.

Nel caso in cui il tuo host non abbia PHP GD - il che è altamente improbabile - dovresti dare un'occhiata a this o this.

0

Sì, certo!

Google per PHP codice di Image Resize samples

Poi creare uno script di download e lo chiamano con i parametri, in questo modo:

http:///www.mysite.com/image.php?image=path/to/my/image.png&width=50&height=50&crop=1 

Lo script verrà caricato l'immagine, ridimensionarla alla larghezza fornita e altezza e opzionalmente ritagliare, quindi echo con intestazioni appropriate per il download ...

Ci sono molti modi per farlo ... A volte è meglio usare Google prima di chiedere qui a SE ...

+0

Non è che io non abbia google. Volevo solo raggiungere la risposta specifica in meno tempo, come se avessi raggiunto la tua risposta. Grazie comunque.. –

0

Usa GD Library per creare miniature

in primo luogo ottenere l'elenco di tutte le immagini nella cartella

function thumb() 
{ 
    $img_dir_path='images/'; 
    $thumb_dir_path='images/thumbs/'; 

    $img_array=GLOB($img_dit_path.'*.{jpg,jpeg}',GLOB_BRACE); 

    foreach($img_array as $img) 
    { 
     list($path,$file)=explode('/', $img); 
     list($fileName, $extension)=explode('.',$file); 

     $thumb-file=$thumb_di_path . $fileName. '-thumb.jpg'; 

     if(file_exists($thumb-file)) 
     { 
       //do nothing 
     } 
     else 
     { 
      //create file using GD and set width and height proportionally 
      // Example $width=$orig_width * 0.1; $height =$orig_height * 0.1 
     } 
    } 
}