הכניסה
WOFF2 (Web Open Font Format 2) משתמש ב- Brotli כאלגוריתם הדחיסה שלה.בניגוד ל- Woff 1 המשתמש בלוב, WIFF 2 מתייחס לBrotl עם דפוס לוח גליף מראש, בדרך כלל להשיג דחיסת 20-30% טובה יותר מאשר WFF 1.
Aspose.Font FOSS for Python handles all Brotli operations internally through its בונק BrotliEncoder ו BrotliDecoder שיעור: לא חיצוני brotli, brotlicffi, או חבילה דומה נדרשת. API הפורמט הסטנדרטי של הפונקציה ליישם את הדחיסה Brotli באופן שקוף בעת ייצור WOFF2 היציאה.
הספרייה פורסמה ב-PIPI כ aspose-font על פי רישיון MIT.
תכונות מרכזיות
הפוך של חותמות ל WOFF2
השימוש העיקרי של Brotli ב Aspose.Font הוא אוטומטי WOFF2 דחיסה. FontConverter.convert עם FontType.WOFF2 להכין קופסה דובדבנים WEB פורטו :
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
from pathlib import Path
# Load any supported format
font = FontLoader.open("MyFont.ttf") # TTF, OTF, WOFF, EOT, CFF, TYPE1
# Convert to WOFF2 — Brotli applied internally
woff2 = FontConverter.convert(font, FontType.WOFF2)
output = woff2.to_bytes(FontType.WOFF2)
Path("MyFont.woff2").write_bytes(output)
print(f"WOFF2 output: {len(output)} bytes")
ניתן גם להמיר מהקובץ WOFF 1 הקיימים ל- WofF2 כדי לשדרג את הדחיסה:
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
from pathlib import Path
woff = FontLoader.open("MyFont.woff")
woff2 = FontConverter.convert(woff, FontType.WOFF2)
Path("MyFont.woff2").write_bytes(woff2.to_bytes(FontType.WOFF2))
print("Upgraded WOFF 1 (zlib) -> WOFF2 (Brotli)")
תגיות WOFF2 Fonts
FontLoader.open דחוס את נתוני הגליף המודפסים ב-Brotli באופן אוטומטי:
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}")
אין צורך בהפסקה.המחיר נדרש BrotliDecoder על The ג’יפ לפני בניית המערכת Woff2Font דוגמה .
רמה נמוכה של קוד בוטלי
הערות API פנימיות: →
BrotliEncoderוBrotliDecoderהם פנימיים שימושים (aspose_font._brotliהם אינם חלק משטח ה- API הציבורי. עבור WOFF2 צבע דחיסה, עדיףFontLoader.open()בשילוב עםWoff2Font,מי עוסק בברזיל באופן שקוף .
כדי לחתוך נתונים בינאריים אקראיים, ללא קשר לפעולות טופס, הפנימיות BrotliEncoder להציג A quality מפרט (0-11):
from aspose_font._brotli import BrotliEncoder # internal API
data = b"Sample data to compress" * 200
# quality=11 = maximum compression; quality=0 = fastest
encoder = BrotliEncoder(quality=11)
compressed = encoder.encode(data)
ratio = len(compressed) / len(data)
print(f"Original : {len(data)} bytes")
print(f"Compressed : {len(compressed)} bytes")
print(f"Ratio : {ratio:.2%}")
BrotliEncoder.encode(data) מקבלת bytes והחזרה bytes.• הקודר דוגמה אינה ניתנת לשימוש מחדש בין שיחות עם הגדרות איכות שונות - יצירת ישנה דוגמה חדשה לכל רמה של איכות.
דיסק ברמה נמוכה
הערות API פנימיות: ראה את ההודעה לעיל -
BrotliDecoderהוא גם אחד שימוש פנימי.
BrotliDecoder.decode זהו שיטה ברמה של כיתה שמדכאת כל Brotli. תשלום על:
from aspose_font._brotli import BrotliEncoder, BrotliDecoder # internal API
original = b"Round-trip compression test" * 100
# Compress
encoder = BrotliEncoder(quality=6)
compressed = encoder.encode(original)
print(f"Compressed to {len(compressed)} bytes")
# Decompress
recovered = BrotliDecoder.decode(compressed)
assert recovered == original
print(f"Decompressed: {len(recovered)} bytes — data intact: {recovered == original}")
BrotliDecoder.decode לוקח A bytes תשלום ושיבוא bytes.הוא מתבצע כל העומס בתשלום בטלפון אחד – אין ממשק זרימה.
מדריך רמת הדחיסה
The quality פרמטרים ב BrotliEncoder.__init__ מפות למדגם סטנדרטי Brotli רמות איכות :
| איכות | מהירות | יחס הדחיסה | שימוש טיפוסי |
|---|---|---|---|
| 0 | מהיר ביותר | הנמוך ביותר | רגישות בזמן אמת / Latence-sensitive |
| 1-3 | מהיר | נמוך | Streaming נתונים |
| 4-6 | איזון | בינוני | מטרה כללית (מומלץ) |
| 7-9 | איטי | גבוה | נכסים סטטיים |
| 10-11 | איטי יותר | הגבוה ביותר | קבצים, ארכיון |
עבור ייצור טופס (WOFF2), איכות 11 נותן את גודל הקובץ הטוב ביותר ומשמש על פי הסטנדרט FontConverter.convert דרך .
מהיר התחלה
הקמת הספרייה:
pip install "aspose-font>=1.0.0"
הפוך TTF ל- WOFF2 ולבדוק את הדחיסה:
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
from pathlib import Path
# Convert to WOFF2 (Brotli applied automatically)
ttf = FontLoader.open("MyFont.ttf")
woff2 = FontConverter.convert(ttf, FontType.WOFF2)
woff2_bytes = woff2.to_bytes(FontType.WOFF2)
# Compare sizes
ttf_bytes = ttf.to_bytes(FontType.TTF)
print(f"TTF : {len(ttf_bytes)} bytes")
print(f"WOFF2 : {len(woff2_bytes)} bytes ({len(woff2_bytes)/len(ttf_bytes):.1%} of TTF)")
Path("MyFont.woff2").write_bytes(woff2_bytes)
print("Done — WOFF2 saved")
קוד פתוח ורישיון
Aspose.Font FOSS for Python is released under the MIT License. The bundled Brotli יישום כולל את החבילה תחת רישיון קוד פתוח משלו. ניתן להשתמש בספריה בפרויקטים אישיים, מסחריים ופתוחים ללא תשלום.