Hogyan használja a Aspose.Font Brotli kompressziót a WOFF2-hez Pythonban?
A WOFF2 (Web Open Font Format 2) a Brotli, egy általános célú font segítségével tömöríti az adatglypheket. A Google veszteségmentes kompressziós algoritmusa. Aspose.Font FOSS Python kezelőszobákhoz. minden Brotli-művelet belsőleg nem kell külső kompressziót telepíteni. Könyvtár. A csomagolt BrotliEncoder és a következők: BrotliDecoder Az osztályok a következőkben állnak rendelkezésre: alacsony szintű használat, amikor a rendszeren kívüli önkényes adatok kompresszálására vagy dekompressziójára van szükség. a standard WOFF2 átváltási útvonal.
Lépésről lépésre szóló útmutató
1. lépés: telepítse a csomagot
pip install "aspose-font>=1.0.0"2. lépés: Importáljon a szükséges osztályokat
A szabványos WOFF2 műveletek esetében:
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontTypeAlacsony szintű Brotli műveletek esetében (belső API változhat a kiadások között):
from aspose_font._brotli import BrotliEncoder, BrotliDecoder # internal API3. lépés: Hozzon létre WOFF2 betűtípust (Brotli-kompresszált)
A szabványos út: bármilyen betűtípust WOFF2-re alakítson át.
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
from pathlib import Path
# Load a TTF or WOFF source
source = FontLoader.open("MyFont.ttf")
# Convert to WOFF2 — Brotli compression is applied internally
woff2 = FontConverter.convert(source, FontType.WOFF2)
output_bytes = woff2.to_bytes(FontType.WOFF2)
Path("MyFont.woff2").write_bytes(output_bytes)
print(f"WOFF2 size: {len(output_bytes)} bytes")A könyvtár hívja a “Cell” programot. BrotliEncoder a WOFF2 kimenetel előállításakor.
4. lépés: Töltse és ellenőrizze a WOFF2 betűtípust
A töltés során a .woff2 A könyvtár lecsomja a Brotli-kompresszált glyphet. adatok automatikusan a betűtípus tulajdonságainak feltárása előtt:
from aspose_font.loader import FontLoader
woff2 = FontLoader.open("MyFont.woff2")
print(f"Name : {woff2.font_name}")
print(f"Family : {woff2.font_family}")
print(f"Glyphs : {woff2.num_glyphs}")
print(f"Type : {woff2.font_type}")FontLoader.open felismerik a WOFF2 mágikus bájtokat és hívja őket. BrotliDecoder a … a glyph áramlás dekompressziót, mielőtt megépíti az Woff2Font Például.
5. lépés: Alacsony szintű Brotli kódolás
Belső API: A következő:
BrotliEncoderés a következők:BrotliDecoderbelső közművek. A WOFF2 betűtípuskompresszióhoz a következőket kell használni: a fenti 3-4-as lépésben bemutatott nyilvános API.
Használat BrotliEncoder közvetlenül, amikor kell kompressálni a véletlenszerű bináris adatokat azzal, hogy Brotli, a… quality A 011 paraméter szabályozza a tömörítési szintet:
from aspose_font._brotli import BrotliEncoder # internal API
data = b"Hello, Brotli!" * 100 # Sample data to compress
encoder = BrotliEncoder(quality=11) # quality 11 = maximum compression
compressed = encoder.encode(data)
print(f"Original : {len(data)} bytes")
print(f"Compressed: {len(compressed)} bytes")
print(f"Ratio : {len(compressed)/len(data):.2%}")A 11. minőség a legjobb kompressziós arányt adja, bár ez az kódolás sebességét is jelentheti. Az 0 minőségi leggyorsabb. A WOFF2 kimeneti betűtípusokhoz a könyvtár alapértelmezett minőségszintet használ.
6. lépés: Alacsony szintű Brotli dekódolás
Használat BrotliDecoder.decode a Brotli-kompresszált adatok dekompressziójának:
from aspose_font._brotli import BrotliEncoder, BrotliDecoder # internal API
original = b"Hello, Brotli!" * 100
# Compress
encoder = BrotliEncoder(quality=6)
compressed = encoder.encode(original)
# Decompress
decoded = BrotliDecoder.decode(compressed)
assert decoded == original
print(f"Decoded {len(decoded)} bytes — matches original: {decoded == original}")BrotliDecoder.decode egy osztálymódszer, amely a sűrített byte-kat és Nem létezik streaming API a teljes kompresszált A használati terhelést egy hívás alatt kell biztosítani.
Mikor kell használni a Brotli alacsony szintű API-kat?
A Bizottság BrotliEncoder és a következők: BrotliDecoder az osztályok akkor hasznosak, ha:
- Az önkényes bináris használati terheket a betűszöveg feldolgozásától függetlenül kell kompressálni vagy dekompresszizni (például font metadata vagy egyedi adatblokkok kompresziója).
- Előzetes hitelesítéssel kell ellenőrizni, hogy a Brotli-kompresszált használati terhelés jól formálódott, mielőtt átadná egy WOFF2 elemzőnek.
- Olyan teszteszközöt épít, amely ismert kompressziós arányadatokat igényel.
Minden szabványos betűtípus művelethez (betöltés, konvertálás, WOFF2 mentése) nem kell a következőket tenni: Szükség van az alacsony szintű API-re FontLoader.open és a következők: FontConverter.convert fogó Brotli átlátszóan.
Gyakran feltett kérdések
A könyvtárnak külső brótli csomag kell?
Nem. A FOSS Python-ra saját Brotli implementációját csomagolja össze. brotli, brotlicffi, vagy hasonló csomagolás szükséges.
Milyen kompressziós minőséget használ a könyvtár WOFF2-hez?
A könyvtár a WOFF2 kimenetel alapértelmezett minőségszintjét használja. A személyre szabott kompressziós feladatok minőségszintje, használata BrotliEncoder(quality=N) ahol: N 0 (leggyorsabb) és 11 (a legjobb kompresszió) között van.
Meg tudom dekompressálni egy WOFF2 glif áramlatot?
A WOFF2 gliph adatai Brotli dekompresszió kombinációját és egy betűtípus-specifikus adatkezelést használnak. transform (a “transzformált” táblázat formátumban). A nyers Brotli-áram lekompressziálása Egyedül nem elég egy használható betűtípus helyreállításához a WOFF2 fájlt kell feltölteni. átjáró FontLoader.open, amely mind a Brotli-dekompressziót, mind pedig az fordított táblázat transformáció.