Pourquoi une photo restaurée peut peser plus lourd que le scan
Une remarque d'utilisateur a lancé celle-ci : le téléchargement restauré pesait plus lourd que la photo envoyée, ce qui semble intuitivement faux pour une « réparation ». La mesure a trouvé deux causes indépendantes : l'une est le produit qui fonctionne comme prévu, l'autre était un vrai gaspillage que nous avons ensuite retiré.
Cause 1 : la sortie porte vraiment ~6× les pixels
La restauration comprend une amélioration de l'image entière : un scan typique de 821×1024 (0,84 mégapixel) revient en 2052×2560 (5,25 mégapixels), 6,25× le nombre de pixels, avec de vrais détails synthétisés dans ces pixels, pas des copies étirées. Plus d'information, plus d'octets. Cette partie-là est la fonctionnalité.
Cause 2 : les encodeurs PNG des navigateurs gonflent de 20 à 40 %
La partie gaspillée : l'appli encodait à l'origine les téléchargements dans le navigateur avec l'encodeur PNG intégré de l'API canvas. Comparé à un vrai encodeur optimisant aux réglages sans perte maximaux, l'encodeur du canvas produisait des fichiers 20 à 40 % plus gros pour une sortie aux pixels identiques. Le PNG est sans perte dans les deux cas ; les octets en plus n'achetaient rien.
Le serveur encode désormais le PNG résultat une seule fois à la compression sans perte maximale, et le client réutilise exactement ces octets pour le téléchargement au lieu de réencoder via le canvas. La réutilisation est correcte par construction : le blob téléchargé est celui-là même à partir duquel le canvas a été peint, donc les pixels ne peuvent pas différer.
Ce que nous n'avons délibérément pas fait
Nous n'avons pas ajouté de formats de sortie avec perte pour courir après un chiffre plus petit. Une restauration est une copie d'archive, alors le bouton de téléchargement te donne du PNG et rien d'autre ; il ne reste aucun gain sans perte gratuit à récolter en JPEG ou en WebP. Et les photos traitées dans le mode de repli sur l'appareil gardent l'encodeur du navigateur ; ces exécutions ne touchent jamais nos serveurs.
À retenir en pratique
Si ton fichier restauré pèse plus lourd que ton scan, vérifie ses dimensions en pixels avant de supposer un gaspillage : à 6× les pixels, un fichier un peu plus gros est le résultat attendu, et un fichier plus petit voudrait dire que des détails ont été jetés.