Open source · Gratuit · Fonctionne hors ligne
Allégez vos images, sans les envoyer nulle part.
Compresso compresse, redimensionne et convertit vos photos sur votre propre appareil. Rien n’est envoyé à un serveur, et tout continue de fonctionner sans la moindre connexion.
Pas de compte. Pas d’envoi. Pas de limite de poids.

Pourquoi elle existe
Une limite de poids est un défaut de conception qui arrive déguisé en votre faute.
Une photo de téléphone pèse couramment plusieurs mégaoctets. Le formulaire qui la refuse en autorise cinq, et il ne vous dira pas quoi changer. Compresso ramène ce problème dans le navigateur, où il se règle en moins d’une seconde.
- 0 octet
Envoyé, jamais
Ouvrez l’onglet réseau et regardez-le rester muet pendant que cent photos sont traitées.
- 3,3 Mo vers 93,5 Ko
Une mesure réelle
Les résultats varient selon le contenu : voici donc un résultat réel isolé, plutôt qu’une moyenne que nous n’avons pas mesurée.
- 3,6 Ko
Cœur de la bibliothèque, gzippé
Aucune dépendance requise. Uniquement les primitives du navigateur.
L’app
Tout se passe sur votre appareil.
Gratuite, installable, et pensée pour le moment où vous avez quarante photos et un formulaire qui n’en accepte aucune.
Privée par construction
Il n’y a aucun serveur où envoyer vos photos. Ce n’est pas une politique qu’il faut croire, c’est une architecture que vous pouvez vérifier.
Fonctionne sans connexion
Installez-la une fois et elle tourne en avion. L’interface, les polices et le décodeur HEIC sont tous stockés sur votre appareil.
Cent à la fois
Les images sont traitées en parallèle sur vos cœurs de processeur : l’interface reste fluide même pendant un gros lot.
Photos d’iPhone comprises
Lit le HEIC, le JPEG, le PNG, le WebP et l’AVIF. Écrit en AVIF, WebP, JPEG et PNG, en choisissant le meilleur format que votre navigateur sait produire.
Sept langues
Anglais, espagnol, français, allemand, italien, portugais et chinois, avec les poids et les pourcentages écrits comme chaque langue les écrit.

Pour les développeurs
Le même moteur, en dépendance.
Si vous préférez que vos utilisateurs ne rencontrent jamais d’erreur d’envoi, le cœur de compression existe en bibliothèque, à glisser dans n’importe quel framework.
import { compress } from 'compresso.js';
const { file, savings } = await compress(input, {
quality: 0.8,
format: 'auto',
});3,6 Ko, gzippé
Assez petite pour que l’adopter ne demande pas de réunion. Aucune dépendance requise, et rien à auditer.
Compression par lots en parallèle, hors du fil principal
compresso.js/pool fait tourner un pool de Web Workers résilient — récupération après crash et délai d’attente incluse — pour qu’un gros lot se comprime en parallèle sans jamais bloquer votre interface.
Ne renvoie jamais un fichier plus gros
La sortie avec perte est plafonnée au plus petit entre votre limite de poids et l’original, parce qu’un compresseur capable d’alourdir un fichier est cassé.