Compression d'image avec Smush.it - Exemple en PHP
Quelque chose d'important dans le développement web est la vitesse d'affichage des pages. Souvent, l'élément limitant est le chargement des images. Yahoo propose un service gratuit pour compresser les images : Smush.it. La compression se fait sans perte, à l'aide d'un petit paquet de script et de configurations propres à Yahoo. Yahoo propose trois façons d'utiliser ce service : via plugin sur votre explorateur web, via upload sur leur site, ou via entrée d'une URL sur leur site. Nous allons voir dans cet article comment utiliser ce service dans des scripts PHP.
Sur le site de Smush.it, on peut trouver sur cette page un formulaire ajax qui convertie un fichier à partir de son url. L'URL appelée est la suivante :
http://www.smushit.com/ysmush.it/ws.php?img=[URL]
Cette adresse renvoie une réponse en JSON avec les différents paramettres de réponse.
En cas du succès, la variable JSON dest contient l'URL du fichier convertie. Ainsi, si vous uploadez des images en PHP, une façon simple de compresser vos images et d'utiliser ce bout de script :
$fichier="monimage.jpg";
$path_loc="/var/www/images/" //Dossier local contenant l'image
$path_dist="http://www.monsite.com/images/" //Dossier distant contenant l'image
try {
// Récuperation du JSON
$json = json_decode(file_get_contents("http://www.smushit.com/ysmush.it/ws.php?img=".urlencode($path_dist.$fichier)));
// Remplacement du fichier
copy($json->dest,$path_dist.$fichier);
echo "Image compressée";
}
catch(Exception $e){
// En cas d'echec
echo "Image non compréssée";
}