API WebP vers PNG#

L'API WebP vers PNG convertit une image WebP au format PNG en une seule requête vers POST /v1/convert/webp-to-png. Envoyez un fichier .webp en multipart/form-data et recevez un PNG sans perte sous forme d'octets bruts, ou définissez direct_download=false pour obtenir des métadonnées JSON avec une URL de téléchargement présignée. La transparence du WebP est préservée dans le PNG de sortie.


Endpoint#

POST /v1/convert/webp-to-png

Type de contenu : multipart/form-data

Entrée acceptée : fichiers .webp

Format de sortie : .png (image/png)


Authentification#

Nécessite soit une clé API privée, soit un jeton JWT provenant d'une clé publique.

X-API-Key: sk_your_private_key

Ou :

Authorization: Bearer <jwt_token>

Paramètres de la requête#

Paramètre Type Obligatoire Valeur par défaut Description
file file Oui -- Le fichier image .webp à convertir.
output_filename string Non Nom du fichier d'entrée Nom de fichier de sortie personnalisé. L'extension .png est ajoutée automatiquement.
direct_download boolean Non true Si true, renvoie les octets bruts de l'image. Si false, renvoie des métadonnées JSON avec une URL de téléchargement présignée.

Détails de la conversion#

  • Utilise Pillow pour la conversion directe de format
  • Si le WebP possède un canal alpha, il est préservé dans le PNG de sortie
  • Le PNG de sortie utilise une compression sans perte
  • Les modes autres que RGBA/RGB sont convertis en RGBA

Réponse#

Téléchargement direct (direct_download=true, par défaut)#

HTTP 200 OK
Content-Type: image/png
Content-Disposition: inline; filename="image_20260405_123456789.png"

Renvoie les octets bruts de l'image.

Réponse avec métadonnées (direct_download=false)#

{
    "presigned_url": "https://spaces.example.com/...",
    "object_key": "env/files/{project_id}/webp-to-png/image_20260405_123456789.png",
    "filename": "image_20260405_123456789.png",
    "file_size": 45678,
    "conversion_time_seconds": 0.5
}

Exemples de code#

Python#

import requests

with open("image.webp", "rb") as f:
    response = requests.post(
        "https://api.enconvert.com/v1/convert/webp-to-png",
        headers={"X-API-Key": "sk_your_private_key"},
        files={"file": ("image.webp", f)}
    )

with open("image_20260405_123456789.png", "wb") as out:
    out.write(response.content)

Node.js#

const form = new FormData();
form.append("file", fs.createReadStream("image.webp"));

const response = await fetch("https://api.enconvert.com/v1/convert/webp-to-png", {
    method: "POST",
    headers: { "X-API-Key": "sk_your_private_key" },
    body: form
});

fs.writeFileSync("image_20260405_123456789.png", Buffer.from(await response.arrayBuffer()));

PHP#

$ch = curl_init("https://api.enconvert.com/v1/convert/webp-to-png");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["X-API-Key: sk_your_private_key"],
    CURLOPT_POSTFIELDS => ["file" => new CURLFile("image.webp")]
]);
$output = curl_exec($ch);
curl_close($ch);
file_put_contents("image_20260405_123456789.png", $output);

Go#

body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("file", "image.webp")
file, _ := os.Open("image.webp")
io.Copy(part, file)
writer.Close()

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/webp-to-png", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", "sk_your_private_key")
resp, _ := http.DefaultClient.Do(req)

Réponses d'erreur#

Statut Condition
400 Bad Request Le fichier n'est pas un fichier .webp
400 Bad Request Échec de la conversion de l'image (fichier corrompu ou non pris en charge)
401 Unauthorized Clé API / jeton JWT manquant ou invalide
402 Payment Required Quota mensuel d'ops épuisé
402 Payment Required Limite de stockage atteinte
413 Payload Too Large Le fichier dépasse la taille maximale autorisée par le forfait

Limites#

Limite Valeur
Taille de fichier maximale Selon le forfait (Founding : 5 MB)
Qualité de sortie Maximale (non configurable)
Conversions mensuelles Selon le forfait

Questions fréquentes#

Comment convertir du WebP en PNG avec une API REST ?#

Envoyez une requête POST à /v1/convert/webp-to-png avec votre fichier .webp dans un corps multipart/form-data, authentifiée via X-API-Key ou un jeton JWT Authorization: Bearer. Le PNG converti est renvoyé sous forme d'octets bruts par défaut.

La transparence est-elle préservée lors de la conversion de WebP en PNG ?#

Oui. Si le WebP possède un canal alpha, il est préservé dans le PNG de sortie ; les modes autres que RGBA/RGB sont d'abord convertis en RGBA.

Le PNG de sortie est-il sans perte ?#

Oui. Le PNG de sortie utilise une compression sans perte, et la conversion est effectuée par Pillow.

Puis-je obtenir une URL de téléchargement au lieu des octets bruts du PNG ?#

Oui. Définissez direct_download=false et l'API renvoie des métadonnées JSON avec presigned_url, filename, file_size et conversion_time_seconds.

Pourquoi l'API renvoie-t-elle 400 Bad Request ?#

Un 400 Bad Request signifie que le fichier envoyé n'est pas un fichier .webp, ou que la conversion a échoué parce que le fichier est corrompu ou non pris en charge.