Comment compresser la taille de l’image lors du téléchargement avec PHP

Les images de haute qualité prennent du temps à se charger sur la page Web en fonction du nombre d’images.

Vous pouvez créer plusieurs tailles de fichier image lors du téléchargement et utiliser les images de faible et de haute qualité si nécessaire.

Lorsque vous réduisez la taille d’une image, cela diminue également sa qualité.

Le meilleur exemple est WordPress, chaque fois qu’un fichier image est téléchargé, il générera une taille différente du fichier. Ces images seront utilisées dans le thème selon les besoins.

Dans ce tutoriel, je montre comment vous pouvez compresser la taille de l’image lors du téléchargement avec PHP.

 Comment Compresser la taille de l'image lors du téléchargement avec PHP

Contenu

  1. HTML
  2. PHP
  3. Conclusion

1. HTML

Crée un élément <input type='file'> dans <form> et bouton soumettre.

Code complété

<form method='post' action='' enctype='multipart/form-data'> <input type='file' name='imagefile' > <input type='submit' value='Upload' name='upload'> </form>

2. PHP

Crée un répertoire images pour stocker des fichiers image.

Fonction personnalisée

Créez une fonction compressImage() pour compresser des images JPEG, PNG et GIF.

La fonction prend 3 paramètres –
1. Source
2. Destination
3. Qualité de fichier

Appelez imagecreatefromjpeg($source), imagecreatefromgif($source) et imagecreatefrompng($source) pour créer une nouvelle image en fonction de la valeur $info.

Exécutez la méthode imagejpeg() pour stocker l’image vers la destination. Ici, le troisième paramètre quality est facultatif. Il prend une valeur de 0 à 100 et la valeur par défaut est 75.

Form submit

Définissez l’emplacement sur le répertoire images et vérifiez l’extension du fichier. Si elle est valide, appelez la fonction compressImage() où passez $_FILES, $location et 60.

Code complété

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

Dans l’exemple, j’ai stocké uniquement l’image compressée, pas l’image de taille d’origine. Vous pouvez stocker à la fois la version des images lors du téléchargement.

Ajustez la qualité de l’image lors de la réduction de la taille.

Si vous avez trouvé ce tutoriel utile, n’oubliez pas de le partager.

Write a Comment

Votre adresse e-mail ne sera pas publiée.