Le WOFF est une police web, c'est-à-dire une enveloppe compressée autour d'un TTF ou d'un OTF. Le WOFF2 est le deuxième format de police web, compressé en Brotli. fontTools se tient entre les deux, et cette page dit exactement ce qui arrive à un fichier WOFF en route vers le WOFF2.
Ce qui s'exécute quand un fichier WOFF devient un WOFF2
fontTools dans notre propre Python, sur une machine que nous louons et que nous surveillons. Votre fichier WOFF est envoyé une fois, fontTools s'exécute une fois, le fichier WOFF2 revient, et aucun des deux fichiers n'est conservé. WOFF vers WOFF2 fait partie des 3649 paires sur lesquelles ce moteur a été sondé avec un vrai fichier, et c'est pour cela que cette page existe quand celles que la sonde n'a pas su prouver n'existent pas.
Ce qui survit du fichier WOFF dans le fichier WOFF2
Chaque glyphe, inchangé. Cette paire ne redessine rien : les contours qui quittent le WOFF arrivent dans le WOFF2 point pour point, si bien que les lettres s'affichent exactement comme le dessinateur les a tracées. Le moteur les compte à la sortie et refuse le fichier si le compte a bougé. Mesuré sur cette paire : le fichier de sonde est revenu à 258 516 octets en 2,7 s.
Le hinting, les paires de crénage et les fonctions OpenType : les tables qui disent à un moteur de rendu comment espacer et substituer les glyphes. Cette paire déplace le conteneur autour d'elles plutôt qu'à travers elles.
La taille, et c'est la raison de le faire. Mesuré sur DejaVu Sans, 6 253 glyphes : 759 720 octets de WOFF deviennent 258 392 octets de WOFF2, le tiers de l'original. Rien n'a été retiré pour y parvenir ; c'est de la compression, et le navigateur la défait avant de dessiner.
Une compatibilité des navigateurs à laquelle vous n'avez pas à penser. Tous les navigateurs en service aujourd'hui acceptent le WOFF2, et c'est ce qu'une chaîne de production moderne produit par défaut.
Ce que la conversion WOFF vers WOFF2 vous coûte
Rien du WOFF lui-même, et il vaut mieux le dire franchement que d'inventer une réserve. Ce que cette paire change, c'est la façon dont la police est empaquetée, jamais ce qu'elle dessine.
La possibilité de double-cliquer dessus. Un WOFF2 n'est pas installable : les systèmes d'exploitation ne l'acceptent pas et les outils de création ne le listent pas. Il est fait pour être servi par HTTP et lu par un navigateur, et c'est tout son objet.
Rien d'autre, et surtout pas de la qualité. Il s'agit de compression et non de rééchantillonnage : le WOFF2 se décompresse en les octets mêmes que portait le WOFF.
D'où viennent les fichiers WOFF et WOFF2
WOFF. Une recommandation du W3C de 2012, faite pour une seule tâche : livrer une police par HTTP. Elle enveloppe une police TrueType ou PostScript existante et la compresse avec zlib. Mesuré sur DejaVu Sans : 759 720 octets deviennent 379 328.
WOFF2. Une recommandation du W3C de 2018, et ce que tous les navigateurs préfèrent aujourd'hui. Même idée que le WOFF, meilleure compression : Brotli au lieu de zlib, plus une transformation qui réécrit la table de glyphes avant de compresser. Mesuré sur DejaVu Sans : 759 720 octets deviennent 258 392, le tiers de l'original.
Si un modèle doit lire le fichier WOFF2
La structure est ce qui subsiste du fichier WOFF, et la structure est ce dont un modèle a besoin. WOFF en entrée, WOFF2 en sortie, avec l'arbre des titres intact plutôt qu'aplati en un seul long paragraphe.
WOFF vers WOFF2, mesuré plutôt que promis
En passant WOFF vers WOFF2 sur le moteur réel avec un vrai fichier, fontTools a écrit 258 516 octets au format WOFF2 en 2,7 secondes, machine par ailleurs au repos. C'est un fichier WOFF un jour donné et non une moyenne, et c'est pourquoi le nombre est donné avec le fichier qui l'a produit.
Le verdict WOFF vers WOFF2 a été obtenu par la relecture de la police avec fontTools et le contrôle de la sorte de contours qu'elle porte, c'est-à-dire que la sortie a été relue et reconnue. Le contrôle employé compte, parce qu'ils ne prouvent pas tous la même chose, et un code de statut 200 ne prouve strictement rien sur ce que le fichier WOFF2 contient.
Les autres routes vers WOFF2, et ce qu'elles ont mesuré
Parmi les routes publiées vers WOFF2, WOFF est la plus grosse sortie des 3 mesurées. Les fichiers témoins diffèrent : ce classement porte sur la sonde et non sur votre document.
TTF vers WOFF2 : 258 512 octets en 2,8 secondes.
OTF vers WOFF2 : 53 724 octets en 0,5 secondes.
Ce que nous ne prétendrons pas sur WOFF vers WOFF2
Un fichier WOFF de plus de 25 Mo est refusé avant la fin de l'envoi plutôt qu'après, pour que vous n'attendiez pas un refus.
Une conversion WOFF vers WOFF2 qui dépasse 50 secondes est tuée, et le processus fontTools avec elle. Une exécution abandonnée resterait posée sur l'un des deux cœurs de la machine jusqu'à ce que quelqu'un le remarque.
Un WOFF enveloppe l'un ou l'autre genre de contours : cette paire fonctionne donc pour certains fichiers et pas pour d'autres. La plupart des polices web enveloppent du TrueType, et c'est pourquoi WOFF vers TTF marche d'ordinaire quand WOFF vers OTF ne marche pas. Le refus est immédiat, ne coûte rien, et nomme la cible qui aurait fonctionné pour votre fichier.
Un fichier WOFF à la fois, choisi dans le navigateur. Il n'y a rien d'autre à régler et rien d'autre à proposer.
WOFF vers WOFF2 : les questions que l'on pose
Qu'est-ce qui convertit vraiment mon fichier WOFF en WOFF2 ?
C'est fontTools qui s'en charge, dans notre propre Python, sur une machine que nous louons et que nous surveillons. Ni astuce de navigateur, ni service d'un tiers : le fichier WOFF est envoyé une fois, fontTools s'exécute une fois, le WOFF2 revient, et aucun des deux fichiers n'est conservé ensuite.
Combien de temps prend une conversion WOFF vers WOFF2 ?
Sur le fichier utilisé par la sonde, fontTools a mis 2,7 seconde et écrit 258 516 octets de WOFF2. C'est une mesure réelle sur un fichier WOFF réel, pas une moyenne et pas une promesse sur le vôtre : un WOFF plus gros prend plus longtemps, et au-delà de 50 secondes l'exécution est arrêtée.
Qu'est-ce que je perds en passant du WOFF au WOFF2 ?
Celle qu'il faut connaître en premier : rien du WOFF lui-même, et il vaut mieux le dire franchement que d'inventer une réserve. Ce que cette paire change, c'est la façon dont la police est empaquetée, jamais ce qu'elle dessine.
Le WOFF2 aura-t-il l'air différent du WOFF ?
Non. Pas un peu, pas dans les cas limites : les contours sont copiés et non redessinés, si bien que chaque glyphe garde les coordonnées qu'il avait. Le moteur compte les glyphes à la sortie et refuse le fichier si le compte a bougé, ce qui est la seule façon dont cela pourrait mal tourner en silence.
De combien le WOFF2 est-il plus petit ?
Mesuré sur DejaVu Sans, une police de 6 253 glyphes : 759 720 octets de WOFF deviennent 258 392 octets de WOFF2. Votre police donnera un autre chiffre, mais le rapport tient : le WOFF2 emploie Brotli et atterrit vers le tiers.
Puis-je installer le WOFF2 sur mon ordinateur ?
Non, et ce n'est pas une limite de cet outil. Un WOFF2 est un format web : les navigateurs le récupèrent, les systèmes d'exploitation ne l'installent pas. Si vous voulez vous servir de la police en local, convertissez-la plutôt en TTF ou en OTF.
La conversion WOFF vers WOFF2 est-elle gratuite ?
Il y a une franchise gratuite chaque mois, et une conversion WOFF vers WOFF2 coûte un demi-crédit dessus. Quand la franchise est épuisée, l'outil le dit et s'arrête, plutôt que de vous remettre discrètement un WOFF2 moins bon.