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
// ...
?>