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
risposta
È 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.
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.
Sì, con PHP GD2 extension. Ecco un rapido tutorial
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 ...
Non è che io non abbia google. Volevo solo raggiungere la risposta specifica in meno tempo, come se avessi raggiunto la tua risposta. Grazie comunque.. –
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
}
}
}
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
potremmo avere migliaia di utenti. memorizzare diverse versioni di immagini di ognuna di esse richiederebbe molto spazio di archiviazione ... –
farlo live e non memorizzarlo significa che lo farai migliaia di volte e ad un certo punto deciderete di memorizzarlo comunque. –