Estimez le gain de compression TIFF avec LZW ou ZIP
Ce calculateur de compression TIFF convertit la taille d’une image non compressée en une fourchette pratique pour LZW, ZIP ou l’absence de compression.
Lancer gratuitement
Il indique la taille de sortie estimée ainsi que le gain probable en mégaoctets et en pourcentage. Le calcul est déterministe et immédiat : vous pouvez donc prévoir le stockage ou le transfert avant d’encoder un lot. La compression TIFF dépendant fortement du contenu des pixels, le résultat constitue une fourchette habituelle et non une garantie de taille finale.
Partez de la taille TIFF réellement non compressée
Saisissez en mégaoctets l’espace qu’occuperait le TIFF sans compression. Cette référence est la bonne, car elle représente les pixels et la structure TIFF avant que LZW ou ZIP ne réduise les informations répétées. Si vous ne possédez qu’un fichier déjà compressé, sa taille actuelle n’est pas un substitut fiable : lui appliquer un nouveau ratio conduirait généralement à sous-estimer le résultat. Pour une image en préparation, calculez la référence à partir de la largeur et de la hauteur en pixels, des échantillons par pixel, des bits par échantillon et du nombre de pages, puis prévoyez la structure TIFF et les métadonnées. Dans un flux existant, la taille non compressée indiquée par le logiciel d’imagerie ou l’encodeur est souvent l’entrée la plus simple. Le calculateur accepte toute valeur décimale positive et finie, des petits scans aux grands lots d’archives. Conservez la même définition du mégaoctet dans tout votre plan. Le résultat aide à dimensionner le stockage et les transferts, mais ne prédit pas au byte près une exécution précise de l’encodeur.
Interprétez les fourchettes LZW, ZIP et sans compression
Choisissez la méthode employée par votre logiciel d’écriture TIFF. Le modèle estime que LZW produit environ 45% à 75% de la taille non compressée, contre 30% à 60% pour ZIP. Ces deux méthodes sont sans perte : les fourchettes concernent donc l’espace occupé, et non la qualité de l’image. L’option sans compression renvoie exactement 100% de la référence et un gain nul, ce qui fournit un témoin utile pour comparer vos scénarios. Le résultat comprend une taille minimale et maximale, puis convertit cet intervalle en gain prudent à optimiste, en mégaoctets et en pourcentage. Une taille de sortie basse correspond à un gain élevé, et inversement. Les ratios fixes rendent les appels répétés reproductibles et faciles à contrôler. Le calcul n’analyse pas les pixels et ne reproduit aucune bibliothèque TIFF particulière. Il apporte ainsi une réponse cohérente aux questions budgétaires, tout en reconnaissant honnêtement la variabilité de la compression sans perte réelle.
Ajoutez une marge de sécurité appropriée
Considérez l’intervalle comme une plage de planification courante, jamais comme une limite ferme. Les photographies, les scans bruités, les images déjà optimisées, les profondeurs de couleur inhabituelles, le découpage en tuiles, les documents multipages, les aperçus intégrés, les profils colorimétriques et les métadonnées volumineuses peuvent placer le fichier final hors de la fourchette. Les aplats, masques, schémas et documents contenant de grandes zones répétées se compressent souvent mieux que des photographies détaillées. Les réglages et prédicteurs de l’encodeur modifient également le résultat, même sous le même nom de méthode. Pour acheter du stockage, retenez la borne haute de la taille estimée et ajoutez une marge pour les métadonnées, l’allocation du système de fichiers, les versions et la croissance. Pour le réseau, multipliez cette valeur prudente par le nombre attendu de fichiers et prévoyez les nouvelles tentatives ou réplications. Si une taille exacte est indispensable, encodez un échantillon représentatif avec le logiciel et les réglages de production, mesurez les ratios obtenus et utilisez-les pour la prévision finale.
Cas d’usage
Préparer une migration d’archives
Estimez une plage de stockage prudente avant de convertir une vaste collection de scans en TIFF sans perte.
Comparer les méthodes d’encodage
Comparez les plages LZW et ZIP à une référence non compressée avant de retenir un réglage de production.
Prévoir le volume des transferts
Transformez les estimations par fichier en budget réseau pour les envois, réplications, livraisons ou sauvegardes.
Questions fréquentes
La taille TIFF estimée est-elle garantie ?
Non. Il s’agit d’une plage habituelle, car la compression réelle dépend du contenu, de la structure TIFF, des métadonnées et des réglages de l’encodeur.
LZW ou ZIP réduisent-ils la qualité de l’image ?
Non. Ces deux méthodes sont sans perte dans un TIFF : les valeurs des pixels décodés sont conservées même si le fichier stocké est plus petit.
Quelle taille non compressée faut-il saisir ?
Utilisez la taille du TIFF avant compression, et non celle d’une copie déjà compressée. Gardez la même convention de mégaoctet dans vos calculs.
Pourquoi les deux valeurs sont-elles égales sans compression ?
Cette option applique exactement 100% : le minimum et le maximum correspondent donc à la référence saisie, avec un gain nul.
Que se passe-t-il avec une autre méthode ?
La requête renvoie une erreur de saisie. Les seules valeurs acceptées sont LZW, ZIP et none.
Combien coûte une requête API ?
Chaque requête API coûte $0.002. Vous pouvez aussi exécuter gratuitement le même calcul déterministe dans votre navigateur.
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/tiff-compression-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"uncompressed_size_mb":250,"compression":"LZW"}'const res = await fetch("https://api.kit.forhosting.com/image/tiff-compression-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"uncompressed_size_mb": 250,
"compression": "LZW"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/tiff-compression-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"uncompressed_size_mb": 250,
"compression": "LZW"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/tiff-compression-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"uncompressed_size_mb":250,"compression":"LZW"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"uncompressed_size_mb":250,"compression":"LZW"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/tiff-compression-estimate", 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
{
"uncompressed_size_mb": 250,
"compression": "LZW"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.tiff_compression_estimate",
"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. |