Convertir une image en WebP
Le WebP est un format pensé pour le web : à qualité comparable, il produit des fichiers plus légers que le JPG ou le PNG. Convertir vos visuels en WebP réduit le poids des pages et accélère leur affichage, tout en conservant la transparence quand elle est utile.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
Pourquoi le WebP est plus léger
Le WebP compresse plus efficacement que les formats historiques : pour un rendu équivalent à l’écran, le fichier pèse souvent 25 à 35 % de moins qu’un JPG, et bien davantage face à un PNG photographique. Sur une page riche en images, ce gain se traduit directement en temps de chargement réduit — un facteur qui compte pour l’expérience des visiteurs comme pour les indicateurs de performance.
Transparence et photos, dans un seul format
Là où il fallait choisir entre le JPG pour les photos et le PNG pour la transparence, le WebP couvre les deux usages. Il gère l’arrière-plan transparent d’un logo comme les dégradés d’une photographie. Vous unifiez ainsi vos visuels dans un format unique, plus léger, sans jongler entre plusieurs types de fichiers selon qu’il y a ou non de la transparence.
Compatibilité et solution de repli
Le WebP est aujourd’hui pris en charge par tous les navigateurs courants. Pour les contextes anciens ou les logiciels qui ne le lisent pas, la bonne pratique consiste à garder une version JPG ou PNG en repli, déclarée dans le balisage. Sur un site moderne, servir le WebP en premier et prévoir ce repli offre le meilleur des deux mondes : légèreté et robustesse.
Avec ou sans perte
Le WebP existe en mode avec perte, comme le JPG, et sans perte, comme le PNG. Le premier maximise l’allègement pour les photos ; le second préserve chaque pixel, utile pour les captures d’écran, les schémas ou les logos. Selon votre image et l’usage visé, l’un ou l’autre donne le meilleur rapport entre netteté et poids.
Cas d’usage
Accélérer un site vitrine
Studio Lumen SAS convertit toutes les photos d’un site client en WebP. Les pages s’allègent sensiblement, le temps d’affichage baisse, et le rendu reste identique à l’œil.
Des fiches produit qui chargent vite
Atelier Garnier SARL passe ses visuels de meubles en WebP. Le catalogue conserve sa netteté tout en réduisant les données téléchargées, un atout sur mobile.
Un logo transparent unifié
Camille Moreau remplace ses PNG transparents par des WebP. La transparence est préservée, les fichiers pèsent moins, et le site n’a plus qu’un seul format d’image à gérer.
Questions fréquentes
Le WebP dégrade-t-il la qualité ?
Non, à qualité visible équivalente. En mode avec perte, il obtient un rendu comparable au JPG pour un poids inférieur ; en mode sans perte, il préserve chaque pixel comme le PNG. Vous choisissez selon l’image et l’usage.
La transparence est-elle conservée ?
Oui. Contrairement au JPG, le WebP gère l’arrière-plan transparent. Un logo ou une icône en PNG transparent garde sa transparence une fois converti en WebP.
Tous les navigateurs lisent-ils le WebP ?
Les navigateurs courants le prennent en charge depuis plusieurs années. Pour les cas anciens, l’usage est de déclarer une version JPG ou PNG en repli dans le balisage, afin que chaque visiteur reçoive un format qu’il sait afficher.
Combien pèse-t-on en moins en passant au WebP ?
Cela dépend de l’image, mais un WebP est souvent 25 à 35 % plus léger qu’un JPG équivalent, et bien plus face à un PNG photographique. Sur une page chargée d’images, le gain cumulé est net.
Quel est le tarif de conversion ?
Le prix affiché est de $0.002 par requête et $0.005 par image, via l’API. Aucun abonnement : vous ne payez que les images converties, sans compte à créer.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/image/to-webp \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/imagen.jpg"}'const res = await fetch("https://api.kit.forhosting.com/image/to-webp", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/imagen.jpg"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/to-webp",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/imagen.jpg"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/to-webp", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/imagen.jpg"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/imagen.jpg"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/to-webp", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"image": "https://ejemplo.com/imagen.jpg"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.to_webp",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 15 |
max_megapixels | 12 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |