כיצד Aspose.Font משתמשת בקצבת בוטלי עבור WOFF2 בפייטון
WOFF2 (Web Open Font Format 2) מדכאת את נתוני הגליף שלה באמצעות Brotli, מטרה כללית. אלגוריתם הדחיסה ללא הפסד שפותח על ידי Google. Aspose.Font FOSS עבור Python כוננים כל הפעולות של Brotli פנימיות – אין צורך להתקין כל דחיסה חיצונית ספרייה - The Bundled BrotliEncoder ו BrotliDecoder שיעורים זמינים עבור שימוש ברמה נמוכה כאשר יש צורך לחתוך או להדביק נתונים אובייקטיביים מחוץ ל- מסלול ההמרה WOFF2 סטנדרטי.
הדרכה שלב אחר צעד
שלב 1: התקנת החבילה
pip install "aspose-font>=1.0.0"שלב 2: ייבוא שיעורים נדרשים
עבור פעולות WOFF2 סטנדרטיות:
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontTypeעבור פעולות ברמה נמוכה של Brotli (API פנימי – עשוי להשתנות בין שחרורים):
from aspose_font._brotli import BrotliEncoder, BrotliDecoder # internal APIשלב 3: יצירת צבע WOFF2 (מכובד ברוב)
הדרך הסטנדרטית: להפוך כל טופס ל- WOFF2.הדחיסה של Brotli נעשית באופן אוטומטי.
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")אין צורך בהדרגה נוספת כדי להדביק.הספרייה קוראת BrotliEncoder בינוני בעת ייצור WOFF2 היצוא.
שלב 4: הטעינה וההבדקה של WOFF2
כאשר מחוברים A .woff2 קובץ, הספרייה דקמה את הגליף הדק ברוטלי נתונים באופן אוטומטי לפני הצגת תכונות השם:
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 מגלה את ה-WOFF2 בייטים ומזמינים קסם BrotliDecoder ל להדביק את זרם הגליף לפני בניית Woff2Font דוגמה .
שלב 5: קידום ברמה נמוכה
האש הפנימית: →
BrotliEncoderוBrotliDecoderשימושים פנימיים עבור WOFF2 צבע דחיסה, עדיף את ה-API הציבורי מופיע בשלבים 3-4 למעלה.
שימוש BrotliEncoder ישירות כאשר אתה צריך לחתוך את הנתונים הבינאריים אקראיים עם בוטל - The quality הפראמטר (0-11) שולט ברמת הדחיסה:
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%}")איכות 11 נותנת את יחס הדחיסה הטוב ביותר על העלות של מהירות הקוד. איכות 0 היא המהירה ביותר. עבור נתוני טפטים ב- WOFF2 ייצוא, הספרייה משתמשת ברמת האיכות הנדרשת.
שלב 6: דיקוד ברמה נמוכה
שימוש BrotliDecoder.decode כדי להדביק את הנתונים המודפסים ב- Brotli:
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 זהו שיטה של כיתה שמקבלת את הוויטות המודפסות ו לא יש API זרימה - המתחם מלא יש להוסיף את ההלוואה בטלפון אחד.
מתי להשתמש ב- APIs ברמה נמוכה
The BrotliEncoder ו BrotliDecoder שיעורים מועילים כאשר:
- אתה צריך לחתוך או להדביק את העומס הבינארי אובייקטיבי, ללא קשר לעיבוד טקסט (לדוגמה, הדחיסה של נתוני טפט או בלוקים נתונים מותאמים אישית).
- עליך להוכיח מראש כי משקל דחיסה Brotli הוא היטב צורה לפני העברת אותו ל- WOFF2 parser.
- אתה בונה קובץ מבחן הדורש נתונים ידועים-קצבת יחס.
עבור כל הפעולות הבסיסיות של טופס (העלאת, ההפוך, חיסכון WOFF2), אתה לא יכול לעשות את זה. יש צורך ברמת API נמוכה - FontLoader.open ו FontConverter.convert ניהול לשטוף בצורה שקופה.
שאלות נפוצות שואלים
האם הספרייה דורשת חבילת פטריות חיצונית?
לא. Aspose.Font FOSS עבור Python מחובר ליישום Brotli משלה. brotli, brotlicffi,או חבילה דומה נדרשת.
באיזה איכות הדחיסה משתמשת הספרייה עבור WOFF2?
הספרייה משתמשת ברמת האיכות הנדרשת עבור WOFF2 ייצוא. רמת איכות עבור משימות דחיסה מותאמות אישית, שימוש BrotliEncoder(quality=N) איפה N בין 0 (מהיר ביותר) ו 11 (הדחיסה הטובה ביותר).
האם אני יכול להדביק זרם WOFF2 glyph ישירות?
נתוני הגליף של WOFF2 משתמשים בשילוב של דכסה בוטלי ושל טקסט ספציפי. transform (הפורמט של “מוחלף” טבלה).Decompressing את זרם Brotli ירוק לבד זה לא מספיק כדי לשחזר טופס שימושי – אתה צריך להעלות את קובץ WOFF2 דרך FontLoader.open, אשר משמש גם את דחיסת Brotli ואת שולחן הפוך של השינוי.