Convertir un HEIC d’iPhone en JPG
Le HEIC est le format dans lequel l’iPhone enregistre ses photos par défaut. Léger et de bonne qualité, il pose un problème : de nombreux sites, formulaires et logiciels ne savent pas l’ouvrir. Convertir un HEIC en JPG rend la photo universellement lisible, acceptée partout, sans rien perdre de visible à l’écran.
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 votre photo ne s’ouvre pas ailleurs
Depuis plusieurs versions d’iOS, l’iPhone enregistre en HEIC pour gagner de la place. Le format est excellent, mais son support hors de l’univers Apple reste inégal : un télé-service, un vieux logiciel ou l’ordinateur d’un collègue peuvent tout simplement refuser de l’afficher. Le JPG, lui, est lisible depuis des décennies sur tous les appareils, ce qui en fait le format de secours universel.
Ce que la conversion préserve
Passer du HEIC au JPG conserve la photo telle que vous la voyez : mêmes dimensions, mêmes couleurs, même sujet. Le JPG est un format avec perte, mais à qualité correcte la différence est imperceptible à l’écran. Le fichier obtenu peut être un peu plus lourd que le HEIC d’origine, contrepartie normale de sa compatibilité universelle ; au besoin, une compression le ramène sous une limite d’envoi.
Le cas des démarches administratives
C’est la situation la plus fréquente : vous photographiez un justificatif avec l’iPhone, puis le télé-service — ANTS, impots.gouv, dossier de location — refuse le HEIC ou n’en veut pas. Convertir en JPG débloque l’envoi. Beaucoup de formulaires n’acceptent d’ailleurs que le JPEG ou le PDF ; disposer d’un JPG propre est souvent la condition pour aller au bout de la démarche.
Cas d’usage
Un justificatif refusé par l’ANTS
Nadia Benali photographie un document avec son iPhone pour une demande de titre. Le télé-service refuse le HEIC ; converti en JPG, le fichier est accepté et la démarche aboutit.
Une photo à partager avec tout le monde
Thomas Rousseau envoie une photo à un contact qui ne peut pas ouvrir les HEIC sur son ordinateur. Le JPG s’affiche sans souci, quel que soit l’appareil du destinataire.
Des images pour un dossier PDF
Élodie Garnier assemble un dossier de location. Ses photos iPhone en HEIC ne s’intègrent pas ; converties en JPG, elles se glissent proprement dans le document final.
Questions fréquentes
Pourquoi mes photos iPhone sont-elles en HEIC ?
Depuis plusieurs versions d’iOS, l’iPhone enregistre par défaut dans ce format, plus léger à qualité égale. Le problème n’est pas la photo, mais le fait que beaucoup de sites et de logiciels hors de l’univers Apple ne savent pas l’ouvrir.
La qualité baisse-t-elle en passant au JPG ?
La photo reste identique à l’œil : mêmes dimensions, mêmes couleurs. Le JPG applique une compression, mais à qualité correcte la différence est imperceptible à l’écran. En échange, le fichier devient lisible partout.
Le JPG obtenu est-il plus lourd que le HEIC ?
Souvent un peu, car le HEIC compresse plus efficacement. C’est le prix de la compatibilité universelle. Si le fichier dépasse une limite d’envoi, une compression le ramène sous le seuil demandé.
Est-ce le bon format pour une démarche en ligne ?
Généralement oui. Beaucoup de télé-services n’acceptent que le JPEG ou le PDF et refusent le HEIC. Un JPG propre est souvent la condition pour joindre un justificatif photographié avec l’iPhone.
Combien coûte la conversion ?
Le tarif affiché est de $0.002 par requête et $0.005 par image, via l’API. Pas d’abonnement, pas de compte à créer : le paiement se fait directement.
Ma photo est-elle conservée après conversion ?
L’image est transmise à notre API le temps de la conversion, sur une liaison chiffrée, puis n’est pas conservée. Elle sert uniquement à produire votre JPG, sans autre usage.
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/heic-to-jpg \
-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/heic-to-jpg", {
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/heic-to-jpg",
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/heic-to-jpg", 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/heic-to-jpg", 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.heic_to_jpg",
"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. |