API de conversion d'images#

Avec une seule API REST, convertissez des images entre JPEG, PNG, WebP, HEIC et SVG, générez des JPEG à partir de pages PDF, ou compressez des images sans en changer le format. Chaque endpoint accepte un envoi multipart/form-data et effectue la conversion de façon synchrone à l'aide de Pillow, CairoSVG, pillow-heif ou PyMuPDF selon la paire de formats. Par défaut, la réponse est le fichier converti brut ; définissez direct_download=false pour recevoir à la place des métadonnées JSON avec une URL de téléchargement présignée.

Conversions prises en charge#

Conversion Endpoint Description
JPEG vers PNG POST /v1/convert/jpeg-to-png Convertit un fichier .jpeg/.jpg envoyé en PNG sans perte, avec une fidélité des couleurs totale.
PNG vers JPEG POST /v1/convert/png-to-jpeg Convertit un .png en JPEG de qualité maximale, en composant les zones transparentes sur un fond blanc.
JPEG vers SVG POST /v1/convert/jpeg-to-svg Intègre le JPEG en base64 sous forme d'URI de données dans un élément SVG <image>. C'est un simple habillage matriciel, pas une vectorisation.
SVG vers JPEG POST /v1/convert/svg-to-jpeg Rastérise le SVG avec CairoSVG et renvoie un JPEG, en composant la transparence sur un fond blanc.
JPEG vers HEIC POST /v1/convert/jpeg-to-heic Encode un fichier .jpeg/.jpg envoyé en HEIC haute qualité à l'aide du codec HEIF.
HEIC vers JPEG POST /v1/convert/heic-to-jpeg Décode un fichier .heic ou .heif envoyé (par ex. des photos iPhone) et produit un JPEG haute qualité.
JPEG vers WebP POST /v1/convert/jpeg-to-webp Produit un WebP haute qualité, plus léger que le JPEG équivalent, pour la diffusion web.
WebP vers JPEG POST /v1/convert/webp-to-jpeg Convertit un .webp en JPEG, en composant les éventuelles zones transparentes sur un fond blanc.
PNG vers SVG POST /v1/convert/png-to-svg Intègre le PNG sous forme d'URI de données en base64 dans un habillage SVG aux dimensions en pixels de l'image d'origine. Ce n'est pas une vectorisation.
SVG vers PNG POST /v1/convert/svg-to-png Rastérise le SVG avec CairoSVG à la taille déclarée, en conservant la transparence dans le PNG obtenu.
PNG vers HEIC POST /v1/convert/png-to-heic Convertit un .png en HEIC, en composant les zones transparentes sur un fond blanc.
HEIC vers PNG POST /v1/convert/heic-to-png Convertit un fichier .heic ou .heif envoyé en PNG sans perte, avec une fidélité des couleurs totale.
PNG vers WebP POST /v1/convert/png-to-webp Convertit un .png en WebP en conservant le canal alpha (transparence).
WebP vers PNG POST /v1/convert/webp-to-png Convertit un .webp en PNG sans perte, en conservant la transparence.
SVG vers HEIC POST /v1/convert/svg-to-heic Rend le SVG avec CairoSVG et l'encode en HEIC à qualité maximale sur un fond blanc.
HEIC vers SVG POST /v1/convert/heic-to-svg Décode le HEIC en PNG et l'intègre sous forme d'URI de données en base64 dans un habillage SVG. Ce n'est pas une vectorisation.
SVG vers WebP POST /v1/convert/svg-to-webp Rend le SVG avec CairoSVG et l'encode en WebP à qualité maximale en conservant la transparence.
WebP vers SVG POST /v1/convert/webp-to-svg Décode le WebP en PNG et l'intègre sous forme d'URI de données en base64 dans un habillage SVG. Ce n'est pas une vectorisation.
HEIC vers WebP POST /v1/convert/heic-to-webp Convertit un fichier .heic ou .heif envoyé en WebP haute qualité, en conservant le canal alpha s'il est présent.
WebP vers HEIC POST /v1/convert/webp-to-heic Convertit un .webp en HEIC à qualité maximale, en composant la transparence sur un fond blanc.
PDF vers JPEG POST /v1/convert/pdf-to-jpeg Génère un JPEG à 144 DPI pour chaque page du PDF ; les PDF d'une seule page renvoient un JPEG, les PDF multi-pages renvoient un ZIP contenant un JPEG par page.
Compresser une image POST /v1/convert/compress-image Compresse un PNG, JPEG ou WebP sur place (format inchangé) : optimisation sans perte en priorité, avec réduction facultative des dimensions à rapport d'aspect verrouillé pour tenir dans un budget target_size_kb.

Conventions communes#

  • Authentification : chaque endpoint nécessite soit une clé API privée (X-API-Key: sk_...), soit un jeton JWT issu d'une clé publique (Authorization: Bearer <jwt_token>). Voir Authentification.
  • Forme de la requête : tous les endpoints acceptent du multipart/form-data avec un champ file obligatoire, plus les paramètres optionnels output_filename et direct_download. Les endpoints de rastérisation SVG (svg-to-png, svg-to-jpeg, svg-to-webp) acceptent aussi des dimensions optionnelles width/height en pixels, et compress-image accepte un budget optionnel target_size_kb. Voir Tâches synchrones et asynchrones.
  • Réponses : les conversions s'exécutent de façon synchrone. Avec direct_download=true (valeur par défaut), vous obtenez les octets bruts convertis ; avec direct_download=false, vous obtenez des métadonnées JSON incluant presigned_url, object_key, filename, file_size et conversion_time_seconds.
  • Erreurs et limites : les endpoints renvoient 400 pour une entrée invalide ou corrompue, 401 pour des identifiants manquants/invalides, 402 lorsque le quota mensuel d'ops ou la limite de stockage de votre plan est atteint, et 413 lorsqu'un fichier dépasse la taille maximale autorisée par votre plan. Voir Codes d'erreur.
  • Qualité : les endpoints de conversion encodent à qualité maximale (non configurable). La taille de sortie, elle, est configurable là où c'est indiqué ci-dessus : width/height sur les endpoints de rastérisation SVG, target_size_kb sur compress-image.

Questions fréquentes#

Comment convertir un format d'image avec une API REST ?#

Envoyez une requête POST multipart/form-data à l'endpoint /v1/convert/{source}-to-{target} correspondant, avec votre image dans le champ file, authentifiée via X-API-Key ou un jeton JWT Bearer. Par défaut, l'API répond avec le fichier converti brut ; définissez direct_download=false pour obtenir à la place des métadonnées JSON avec une URL de téléchargement présignée.

Les endpoints de sortie SVG vectorisent-ils mon image ?#

Non. Les endpoints JPEG, PNG, WebP et HEIC vers SVG encodent l'image matricielle en base64 et l'intègrent sous forme d'URI de données dans un élément SVG <image> dimensionné selon les proportions en pixels d'origine. Ils ne convertissent pas l'image en tracés vectoriels, et l'encodage base64 ajoute environ 33 % à la taille du fichier.

Qu'advient-il de la transparence pendant la conversion ?#

Cela dépend du format de sortie. Les conversions vers JPEG et HEIC composent les zones transparentes sur un fond blanc, car ces formats de sortie sont produits sans transparence. Les conversions vers PNG et WebP conservent le canal alpha.