Convertir un SVG en PNG
Un SVG est une image vectorielle, décrite par des formes plutôt que par des pixels. Le PNG, lui, est fait de pixels. Convertir un SVG en PNG produit une image nette à taille fixe, lisible par les outils et plateformes qui n’acceptent pas le vectoriel — un logo prêt à insérer partout.
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.
Vectoriel contre matriciel
Le SVG se redimensionne à l’infini sans jamais perdre en netteté, parce qu’il décrit des tracés, pas des pixels. C’est idéal pour un logo ou une icône. Mais beaucoup d’outils — messageries, traitements de texte, certaines plateformes — n’affichent pas le SVG. Le convertir en PNG fige l’image en pixels à une résolution choisie, ce qui la rend universellement compatible, au prix de la perte du redimensionnement infini.
Choisir la bonne résolution
Puisque le PNG a une taille fixe en pixels, la résolution de sortie compte. Exportez à la dimension à laquelle l’image sera affichée, voire au double pour les écrans à haute densité, afin de garder des contours nets. Un logo destiné à un en-tête n’a pas besoin de la même résolution qu’un visuel plein écran ; vous fixez la largeur cible, l’outil calcule le reste.
La transparence est conservée
Le PNG gère la transparence, tout comme le SVG. Un logo sur fond transparent le reste après conversion : il se pose proprement sur n’importe quelle couleur ou photo, sans rectangle blanc autour. C’est ce qui distingue le PNG du JPG pour ce type d’usage, et ce qui en fait le format de sortie naturel d’un SVG destiné à être superposé.
Cas d’usage
Un logo pour une signature d’e-mail
Studio Lumen SAS possède son logo en SVG, mais la messagerie ne l’affiche pas. Converti en PNG transparent à la bonne largeur, il s’intègre nettement dans la signature.
Une icône dans un document
Camille Moreau veut insérer un pictogramme vectoriel dans un rapport. Le traitement de texte n’accepte pas le SVG ; en PNG, l’icône s’ajoute sans difficulté et reste nette à l’impression.
Un visuel de marque pour une plateforme
Atelier Garnier SARL doit fournir son logo à un annuaire en ligne qui n’accepte que le PNG. La conversion produit le fichier attendu, à la résolution demandée.
Questions fréquentes
Pourquoi convertir un SVG, si le vectoriel est meilleur ?
Le SVG est parfait pour la netteté à toute taille, mais tous les outils ne le lisent pas : messageries, traitements de texte et certaines plateformes n’affichent que des images en pixels. Le PNG rend votre visuel compatible partout.
Quelle résolution choisir pour le PNG ?
Exportez à la taille d’affichage prévue, ou au double pour les écrans à haute densité, afin de garder des contours nets. Comme le PNG a une dimension fixe, mieux vaut viser la bonne largeur dès la conversion.
La transparence de mon logo est-elle gardée ?
Oui. Le PNG prend en charge la transparence, comme le SVG. Un logo sur fond transparent le reste après conversion et se superpose proprement sur n’importe quel arrière-plan.
Perd-on quelque chose en convertissant ?
On perd le redimensionnement infini propre au vectoriel : le PNG est figé à sa résolution. Gardez donc le SVG d’origine comme source, et générez un PNG à la taille voulue chaque fois qu’un usage l’exige.
Quel est le tarif ?
Cette conversion est facturée $0.040 par requête et $0.001 par image, via l’API — un barème propre à cet outil. Pas d’abonnement ni de compte : le paiement se fait directement.
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/svg-to-png \
-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/svg-to-png", {
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/svg-to-png",
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/svg-to-png", 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/svg-to-png", 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.svg_to_png",
"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. |
422 | task_failed | La tâche a échoué : elle ne vous est pas facturée. |