Hogyan használja a Aspose.Font Brotli kompressziót a WOFF2-hez Pythonban?

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 FontType

Alacsony szintű Brotli műveletek esetében (belső API változhat a kiadások között):

from aspose_font._brotli import BrotliEncoder, BrotliDecoder  # internal API

3. 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: BrotliDecoder belső 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ó.

See Also

 Magyar