Le immagini di alta qualità richiedono tempo per essere caricate sulla pagina Web in base al numero di immagini.
È possibile creare più dimensioni del file immagine durante il caricamento e utilizzare le immagini di bassa e alta qualità quando richiesto.
Quando si riducono le dimensioni di un’immagine, diminuisce anche la sua qualità.
Il miglior esempio di questo è WordPress, ogni volta che viene caricato un file immagine, genererà una dimensione diversa del file. Quelle immagini useranno nel tema secondo il requisito.
In questo tutorial, vi mostro come è possibile comprimere le dimensioni dell’immagine durante il caricamento con PHP.
Contenuto
- HTML
- PHP
- Conclusione
1. HTML
Crea un elemento <input type='file'>
in <form>
e invia il pulsante.
Codice completato
<form method='post' action='' enctype='multipart/form-data'> <input type='file' name='imagefile' > <input type='submit' value='Upload' name='upload'> </form>
2. PHP
Crea una directory images
per archiviare i file immagine.
Funzione personalizzata
Crea una funzione compressImage()
per comprimere immagini JPEG, PNG e GIF.
La funzione richiede 3 parametri –
1. Fonte
2. Destinazione
3. Qualità file
Chiama imagecreatefromjpeg($source)
, imagecreatefromgif($source)
e imagecreatefrompng($source)
per creare una nuova immagine in base al valore $info
.
Eseguire imagejpeg()
metodo per memorizzare l’immagine alla destinazione. Qui, il terzo parametro quality
è facoltativo. Prende valore da 0 a 100 e il valore predefinito è 75.
Modulo invia
Imposta la posizione sulla directory images
e controlla l’estensione del file. Se è valido, chiama la funzione compressImage()
dove passa $_FILES
,$location
e 60
.
Codice completato
<?phpif(isset($_POST)){ // Getting file name $filename = $_FILES; // Valid extension $valid_ext = array('png','jpeg','jpg'); // Location $location = "images/".$filename; // file extension $file_extension = pathinfo($location, PATHINFO_EXTENSION); $file_extension = strtolower($file_extension); // Check extension if(in_array($file_extension,$valid_ext)){ // Compress Image compressImage($_FILES,$location,60); }else{ echo "Invalid file type."; }}// Compress imagefunction compressImage($source, $destination, $quality) { $info = getimagesize($source); if ($info == 'image/jpeg') $image = imagecreatefromjpeg($source); elseif ($info == 'image/gif') $image = imagecreatefromgif($source); elseif ($info == 'image/png') $image = imagecreatefrompng($source); imagejpeg($image, $destination, $quality);}?>
3. Conclusione
Nell’esempio, ho memorizzato solo l’immagine compressa, non l’immagine di dimensione originale. È possibile memorizzare sia la versione delle immagini durante il caricamento.
Regola la qualità dell’immagine quando riduci le dimensioni.
Se hai trovato utile questo tutorial, non dimenticare di condividere.