Lo script sopra carica un'immagine WebP, ne calcola le nuove dimensioni proporzionali basate su una larghezza e altezza desiderate, ridimensiona l'immagine originale e salva l'immagine ridimensionata in un nuovo file WebP.
La riduzione delle dimensioni delle immagini può contribuire a migliorare le prestazioni del caricamento delle pagine web, riducendo il tempo di caricamento complessivo.
Nello script php che segue, carichiamo un'immagine in formato WebP utilizzando imagecreatefromwebp()
e otteniamo le sue dimensioni originali. Successivamente, calcoliamo le nuove dimensioni proporzionali per l'immagine ridimensionata in base alle dimensioni desiderate specificate. Creiamo un'immagine vuota con le nuove dimensioni utilizzando imagecreatetruecolor()
, quindi ridimensioniamo l'immagine originale alla nuova dimensione utilizzando imagecopyresampled()
. Infine, salviamo l'immagine ridimensionata in un nuovo file WebP utilizzando imagewebp()
<?php
// Percorso dell'immagine originale in formato WebP
$percorsoImmagineWebP = 'path/immagine.webp';
// Dimensioni desiderate per l'immagine ridimensionata
$larghezzaDesiderata = 800;
$altezzaDesiderata = 600;
// Crea un'immagine a partire dal file WebP
$immagine = imagecreatefromwebp($percorsoImmagineWebP);
// Ottieni le dimensioni dell'immagine originale
$larghezzaOriginale = imagesx($immagine);
$altezzaOriginale = imagesy($immagine);
// Calcola le nuove dimensioni proporzionali per l'immagine ridimensionata
$rapporoAspetto = $larghezzaOriginale / $altezzaOriginale;
if ($larghezzaDesiderata / $altezzaDesiderata > $rapporoAspetto) {
$larghezzaRidimensionata = $altezzaDesiderata * $rapporoAspetto;
$altezzaRidimensionata = $altezzaDesiderata;
} else {
$larghezzaRidimensionata = $larghezzaDesiderata;
$altezzaRidimensionata = $larghezzaDesiderata / $rapporoAspetto;
}
// Crea un'immagine vuota con le dimensioni ridimensionate
$immagineRidimensionata = imagecreatetruecolor($larghezzaRidimensionata,
$altezzaRidimensionata);
// Ridimensiona l'immagine originale alla nuova dimensione
imagecopyresampled($immagineRidimensionata, $immagine, 0, 0, 0, 0,
$larghezzaRidimensionata, $altezzaRidimensionata, $larghezzaOriginale,
$altezzaOriginale);
// Salva l'immagine ridimensionata in un nuovo file WebP
$percorsoImmagineRidimensionata = 'path/immagine_ridimensionata.webp';
imagewebp($immagineRidimensionata, $percorsoImmagineRidimensionata);
// Libera la memoria dalle immagini create
imagedestroy($immagine);
imagedestroy($immagineRidimensionata);
// Puoi utilizzare l'immagine ridimensionata come richiesto
// ...
?>
Spiegazione passo passo dello script per ridimensionare un'immagine in formato WebP utilizzando la libreria GD di PHP
- Definizione delle variabili:
- Vengono definite le variabili per il percorso dell'immagine WebP originale (
$percorsoImmagineWebP
) e le dimensioni desiderate per l'immagine ridimensionata ($larghezzaDesiderata
e$altezzaDesiderata
).
- Vengono definite le variabili per il percorso dell'immagine WebP originale (
- Creazione dell'immagine da file WebP:
- Utilizzando la funzione
imagecreatefromwebp()
, viene creata un'immagine a partire dal file WebP specificato nel percorso.
- Utilizzando la funzione
- Ottenere le dimensioni dell'immagine originale:
- Le dimensioni dell'immagine originale vengono ottenute utilizzando le funzioni
imagesx()
eimagesy()
, che restituiscono rispettivamente la larghezza e l'altezza dell'immagine.
- Le dimensioni dell'immagine originale vengono ottenute utilizzando le funzioni
- Calcolo delle nuove dimensioni:
- Viene calcolato il rapporto di aspetto dell'immagine originale dividendo la larghezza per l'altezza.
- Utilizzando condizioni, vengono calcolate le nuove dimensioni proporzionali per l'immagine ridimensionata in base alle dimensioni desiderate. In questo modo, l'immagine conserverà le proporzioni originali.
- Creazione di un'immagine ridimensionata vuota:
- Utilizzando la funzione
imagecreatetruecolor()
, viene creata un'immagine vuota con le nuove dimensioni calcolate.
- Utilizzando la funzione
- Ridimensionamento dell'immagine originale:
- La funzione
imagecopyresampled()
viene utilizzata per ridimensionare l'immagine originale alla nuova dimensione. Questa funzione copia e ridimensiona l'immagine originale nell'immagine ridimensionata creata precedentemente.
- La funzione
- Salvataggio dell'immagine ridimensionata:
- L'immagine ridimensionata viene salvata in un nuovo file WebP utilizzando la funzione
imagewebp()
. Verrà creato un nuovo file nel percorso specificato.
- L'immagine ridimensionata viene salvata in un nuovo file WebP utilizzando la funzione
- Liberazione della memoria:
- Dopo aver salvato l'immagine ridimensionata, è necessario liberare la memoria dalle immagini create utilizzando la funzione
imagedestroy()
.
- Dopo aver salvato l'immagine ridimensionata, è necessario liberare la memoria dalle immagini create utilizzando la funzione
Puoi utilizzare l'immagine ridimensionata come richiesto nella tua applicazione. Assicurati di impostare correttamente i percorsi dei file e le dimensioni desiderate per ottenere i risultati desiderati.