Home
Home
Tutorials
   PHP
   Java
   Tutti...
Manuali
SmartImage
Marketing
Downloads
Contatti
Affiliati

  Da vedere
Hosting
Statistiche per siti
Corsi per webmaster
Hardware
Processori


  OnFocus
JSON e PHP: Introduzione ed esempi

Cenni di programmazione multi-threading - parte 3

HTML con PHP

  Siti Amici
Miki News
Giochi gratis
Areagratis
Baratto Online
AI Machines
Guide e Manuali Gratis
Script e tutorial
Aziende di trasporto
Software Freeware
Sniper Wolf 's blog
Hackish
Secure World
Add to Technorati Favorites

Tutti i siti amici
Diventa Affiliato

 


Autore: Claudio Venturini
Categoria: php
Livello: normale Livello normale

Miniature di immagini con le GD

Come creare miniature di immagini in tempo reale con PHP e la libreria GD

In questo tutorial vedremo in pratica come creare le miniature delle immagini presenti sul server usando semplice codice PHP e la libreria GD.
Avviso fin da subito che il codice qui descritto è valido solo con la GD library versione 2.0 o superiore. La versione 2.0 è supportata a partire da PHP 4.3.0 e seguenti.

Le librerie GD si rivelano utilissime nel caso ad esempio di web galleries. E' infatti possibile caricare sul server le immagini in dimensione originale e lasciare ad uno script PHP il compito di creare le miniature delle immagini da visualizzare ad esempio in un indice delle immagini presenti. Ciò significa risparmiare molto tempo, in quanto le immagini non vanno ridotte a mano, e molto spazio, in quanto non è necessario conservare su un server sia le immagini a dimensione originale che le miniature di esse.
Durante il ridimensionamento delle immagini è inoltre possibile ridefinire il livello di compressione, regolando quindi il rapporto qualità/dimensione, rendendo così più veloce il caricamento della miniatura.

In parole povere ciò che lo script deve fare è aprire e leggere un'immagine gif o jpeg o png, ridimensionarla, ricomprimerla e salvarla su disco, oppure visualizzarla senza salvarla.
Analizzeremo il caso in cui l'immagini viene salvata su disco, e il codice è semplice:

<?php
$img 
"immagini/immagine.jpeg"// percorso al file dell'immagine
$dest "miniature/"// directory di salvataggio delle miniature create

// dimensioni della miniatura da creare
$thumbWidth 60// larghezza 
$thumbHeight 60// altezza 
// livello di compressione della miniatura
$thumbComp 90;

// creazione dell'immagine della miniatura
$thumb imagecreate($thumbWidth$thumbHeight) or die("Impossibile creare la miniatura");
// apertura dell'immagine originale 
$src imagecreatefromjpeg($img) or die ("Impossibile aprire l'immagine originale");

// copio l'immagine originale in quella della miniatura ridimensionandola
imagecopyresized($thumb$src0000$thumbWidth$thumbHeightimageSx($src), imageSy($src)) or die("Impossibile ridimensionare l'immagine");

// salvataggio miniatura
imagejpeg($thumb$dest$thumbComp) or die("Impossibile salvare la miniatura");
?>

Analizziamo ora lo script: le prime righe sono chiare: inizialmente vengono memorizzati il percorso all'immagine originale sul server e la cartella di destinazione. $thumbWidth e $humbHeight sono invece le dimensioni che la miniatura dovrà assumere e $thumbComp è il livello di compressione della miniatura rispetto all'originale; la compressione è un valore compreso tra 0 e 100. 100 significa non compressa, 0 è il massimo della compressione. Più l'immagine viene compressa più sarà "leggera" e veloce da caricare, ma anche di qualità minore. Bisognerà quindi sempre trovare un compromesso tra dimensione e qualità.

Con imagecreate() creiamo semplicemente la base per la miniatura, impostandogli le dimensioni a $thumbWidth e $thumbHeight. Con imagecreatefromjpeg() invece creiamo un immagine uguale al file originale. A tale funzione come si può notare bisogna passare il percorso al file di immagine.
A questo punto bisogna copiare nella nuova immagine, cioè la miniatura, il contenuto dell'immagine originale, cambiando però le dimensioni. Si usa quindi imagecopyresized(), che fa quello che ci serve. Il formato di tale funzione è imagecopyresized (resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h). "dst_image" è l'immagine di destinazione, "src_image" è l'immagine originale, "dst_x/y" e "src_x/y" sono le coordinate di posizionamento dell'immagine originale su quella nuova, "dst_w/h" e "src_w/h" sono invece le dimensioni rispettivamente dell'immagine di destinazione e di quella originale. La funzione ritorna true o false, a seconda se la copia sia riuscita o meno.

Copiata l'immagine la salviamo con imagejpeg(). Il salvataggio avviene con il livello di compressione specificato. E' possibile evitare il salavataggio e restituire solamente l'immagine omettendo il percorso del file da salvare.

Introduzione alla libreria GD Precedente Indice Successivo Date(): date e orari con PHP
Introduzione alla libreria GD Date(): date e orari con PHP