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.
Contenu
- HTML
- PHP
- 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.