Si vous avez déjà eu besoin de redimensionner une image pour un site web, d'une compression rapide ou même de convertir un PNG en JPG, vous savez à quel point les solutions toutes faites peuvent être limitées - ou pleines de publicité et de restrictions. En tant que développeur et créateur de contenu, j'ai décidé de créer ma propre solution. propre API de redimensionnement d'imageavec prise en charge de la compression, de la conversion de format et de la visualisation en direct - le tout dans mon environnement WordPress.
Dans cet article, je vous montre les coulisses de cette création et comment vous pouvez utiliser ou adapter quelque chose de similaire dans votre projet.
Lien API : Redimensionnement d'image en ligne
Pourquoi ai-je créé cette API ?
J'avais besoin d'une solution légère, fonctionnelle et personnalisable pour mon usage personnel et pour les lecteurs de Criadix. Les outils en ligne ne garantissent pas toujours le contrôle de la qualité et ne permettent pas non plus d'intégrer automatiquement d'autres flux de travail. En créant ma propre API :
- J'ai gagné contrôle total du redimensionnement
- J'ai pu appliquer compression personnalisée
- J'ai permis à conversion entre les formats (PNG ↔ JPG)
- Ajouté visualisation en temps réel avec sur le front-end
- Et j'ai pu offrir tout cela par l'intermédiaire de Plugin WordPress
Comment fonctionne l'API ?
La logique centrale se trouve dans un fichier PHP qui agit comme un point de terminaison REST. Il permet :
1. Télécharger plusieurs images
Avec validation du type (jpg, jpeg, png, webp, gif, bmp ou tiff) et limite de taille.
2. Lecture des dimensions originales
L'API obtient la largeur et la hauteur de chaque image téléchargée et les affiche à l'utilisateur dans le panneau de prévisualisation.
7 plugins essentiels pour les professionnels utilisant WordPress
3. Redimensionnement par pixel ou pourcentage
L'utilisateur peut choisir entre le réglage manuel des dimensions et la gestion automatique des proportions.
4. Compression réglable
Avec Imagick, je contrôle la qualité de l'image finale.
5. Conversion de format
Si l'utilisateur envoie du PNG et opte pour une sortie JPG, la conversion est appliquée avec un lissage transparent de l'arrière-plan.
6. Télécharger en ZIP
Si plusieurs images sont importées, toutes les images traitées sont compressées dans un seul fichier .zip pour un téléchargement immédiat. Dans le cas contraire, le même nom d'image sera compressé.
Expérience utilisateur (UX) sur le front-end
Comme j'attache de l'importance à la fois à l'aspect technique et à l'expérience de l'utilisateur, c'est le front-end qui est le plus performant :
- Visualisation en direct avec canvas
- Interface simple et claire
- Modale pour une visualisation étendue
Chargement du feedback et succès avec fetch et wp_ajax
Comment je l'ai implémenté dans WordPress
Plugin personnalisé
J'ai créé un plugin WordPress appelé Image Process API. Il enregistre un point de terminaison /wp-json/image-api/v1/process et l'offre :
- Sécurité avec nonce
- Prise en charge de plusieurs fichiers
- Possibilité d'utiliser GD ou Imagick en fonction du serveur
Structure du répertoire
- /temp_uploads/ → images reçues
- /final_images/ → images converties et compressées
- /downloads/ → fichiers zip prêts à l'emploi
Il comprend également des journaux d'erreurs pour le débogage et la vérification des autorisations sur le serveur local ou distant.
Prochaines étapes
Comme tout projet vivant, j'ai toujours envie de le faire :
- Ajout d'un redimensionnement par lots via une URL distante
- Créer un tableau de bord pour visualiser les statistiques d'utilisation
- Proposer un widget pour faciliter l'intégration dans d'autres sites
Créer ma propre API de redimensionnement d'images était plus qu'un défi technique, c'était une solution pratique et personnalisée pour mon quotidien de créateur et de développeur. Et le plus beau : je peux maintenant offrir cet outil dans Criadix pour aider d'autres utilisateurs qui ont également besoin d'optimiser les images avec plus de liberté et de qualité.
Si vous souhaitez en savoir plus sur WordPress et le développement PHP, ce type de projet est un excellent point de départ - et il est tout à fait applicable à la vie réelle.

