Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Compresser des images pour un site Web à l’aide de reSmush.it en PHP

51

Publié dans PHP

Les images rendent votre site Web magnifique et ajoutent une meilleure expérience utilisateur aux visiteurs. Cependant, les images peuvent également affecter les performances du site et ralentir incroyablement la vitesse de votre site. Et nous savons tous que les sites Web plus lents ne peuvent pas réussir sur Internet.

Dans cet article, nous vous montrons comment compresser des images pour des sites Web en utilisant reSmush.it en PHP. En utilisant ce service, les utilisateurs peuvent réduire la taille des images de leur site Web. Cela aidera à améliorer la vitesse de la page. Le reSmush.it est un outil gratuit de compression d’images. Un utilisateur peut compresser autant d’images qu’il le souhaite. Il n’y a pas de telle limite sur le nombre d’images.

Au moment de la rédaction de cet article, reSmush.it compresse plus de 7 milliards d’images à ce jour et compte toujours. Ce numéro prouve que c’est un service très populaire parmi les utilisateurs.

Commencer

Créons un formulaire simple où l’utilisateur peut télécharger l’image. Lors de la soumission de l’image, en utilisant PHP, nous enverrons l’image aux services reSmush.it et recevrons la version optimisée de notre image.

<form method="post" enctype="multipart/form-data">
    <p><input type="file" name="image" accept="image/*" /></p>
    <input type="submit" name="submit" value="Submit">
</form>

Ici, nous avons ajouté un bouton de saisie de fichier et de soumission. Nous avons également utilisé un attribut accept="image/*"qui vous permet de sélectionner uniquement des fichiers image.

Compresser des images pour un site Web en PHP

Maintenant, nous devons interagir avec l’API reSmush.it. Nous allons écrire un code qui exécute les étapes suivantes.

  • Téléchargez l’image sur notre serveur.
  • Envoyez l’image téléchargée au point de terminaison de l’API reSmush.it.
  • Reçoit le chemin d’une image optimisée.
  • Stockez cette version optimisée sur notre serveur en remplaçant l’image d’origine.

Avant de continuer, assurez-vous d’avoir activé l’extension cURL sur votre serveur.

<?php
if (isset($_POST['submit'])) {
  
    //allowed file types
    $arr_file_types = ['image/png', 'image/gif', 'image/jpg', 'image/jpeg'];
  
    if (!(in_array($_FILES['image']['type'], $arr_file_types))) {
  
        die('Only image is allowed!');
    }
  
    if (!file_exists('uploads')) {
        mkdir('uploads', 0777);
    }
  
    move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/'. $_FILES['image']['name']);
  
    // optimize image using reSmush.it
    $file = getcwd(). '/uploads/'. $_FILES['image']['name'];
    $mime = mime_content_type($file);
    $info = pathinfo($file);
    $name = $info['basename'];
    $output = new CURLFile($file, $mime, $name);
    $data = array(
        "files" => $output,
    );
  
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://api.resmush.it/?qlty=80');
    curl_setopt($ch, CURLOPT_POST,1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $result = curl_exec($ch);
    if (curl_errno($ch)) {
       $result = curl_error($ch);
    }
    curl_close ($ch);
  
    $arr_result = json_decode($result);
  
    // store the optimized version of the image
    $ch = curl_init($arr_result->dest);
    $fp = fopen(getcwd(). '/uploads/'. $name, 'wb');
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
  
    echo "File uploaded successfully.";
}
?>

Dans le code ci-dessus, j’ai défini la valeur de qualité sur ’80’, ce qui est recommandé. Vous pouvez ajuster ce nombre à plus ou moins. Nous stockons des images dans le uploadsrépertoire. Dans votre cas, vous pouvez ajuster ce répertoire.

J’espère que vous comprenez comment compresser les images du site Web en PHP à l’aide de reSmush.it. J’aimerais entendre vos pensées et suggestions dans la section des commentaires ci-dessous.

Articles Liés

Source d’enregistrement: artisansweb.net

Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Plus de détails