कैसे Aspose.Font Python में WOFF2 के लिए Brotli Compression का उपयोग करता है
WOFF2 (Web Open Font Format 2) Brotli का उपयोग करके अपने ग्लिफ डेटा को संपीड़ित करता है, एक सामान्य उद्देश्य Google द्वारा विकसित हानिहीन संपीड़न एल्गोरिथ्म. Aspose.Font FOSS for Python handles सभी Brotli ऑपरेशन आंतरिक रूप से - आपको किसी भी बाहरी संपीड़न स्थापित करने की आवश्यकता नहीं है पुस्तकालय - बंडल 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 ऑपरेशन (आंतरिक एपीआई - रिलीज के बीच परिवर्तन हो सकता है):
from aspose_font._brotli import BrotliEncoder, BrotliDecoder # internal APIचरण 3: एक WOFF2 फ़ॉन्ट बनाएं (ब्रोटी-कंप्रेस)
मानक मार्ग: किसी भी फ़ॉन्ट को WOFF2 में परिवर्तित करें. ब्रोटली संपीड़न स्वचालित रूप से लागू होता है.
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 फ़ॉन्ट कॉम्प्लेक्स के लिए, पसंद करें सार्वजनिक एपीआई ऊपर चरण 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-compressed डेटा को डिकम्प्रेस करने के लिए:
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 यह एक वर्ग विधि है जो संपीड़ित बाइट्स लेती है और कोई स्ट्रीमिंग एपीआई नहीं है - पूर्ण संपीड़ित भुगतान एक ही कॉल में किया जाना चाहिए।.
कम स्तर के ब्रोटी एपीआई का उपयोग कब करें
के लिए BrotliEncoder और BrotliDecoder कक्षाएं उपयोगी हैं जब:
- आपको फ़ॉन्ट प्रसंस्करण के बावजूद स्वैच्छिक द्विआधारी विकल्पों को संपीड़ित या डिस्कनेक्ट करना होगा (उदाहरण के लिए, फ़ोन्ट मेटाडेटा या कस्टम डेटा ब्लॉक को कम करना)।.
- आपको पहले से पुष्टि करने की आवश्यकता है कि एक Brotli-compressed भुगतान भार अच्छी तरह से बनाया गया है, इससे पहले कि इसे WOFF2 पैसर में स्थानांतरित किया जाए।.
- आप एक परीक्षण फिक्चर बना रहे हैं जिसमें ज्ञात-कंपेशन-प्रतल डेटा की आवश्यकता होती है।.
सभी मानक फ़ॉन्ट ऑपरेशन (खाली, रूपांतरण, WOFF 2 बचाने) के लिए, आप नहीं कर सकते हैं कम स्तर की एपीआई की जरूरत है - FontLoader.open और FontConverter.convert हाथ से खुले तौर पर ब्लीडिंग करें।.
अक्सर पूछे जाने वाले प्रश्न
क्या पुस्तकालय को एक बाहरी ब्रॉटली पैकेज की आवश्यकता है?
नहीं. Aspose.Font FOSS for Python अपने स्वयं के Brotli कार्यान्वयन को बांडित करता है. नहीं brotli, brotlicffi,या इसी तरह के पैकेज की आवश्यकता होती है।.
WOFF2 के लिए पुस्तकालय किस प्रकार की संपीड़न गुणवत्ता का उपयोग करता है?
पुस्तकालय WOFF2 उत्पादन के लिए डिफ़ॉल्ट गुणवत्ता स्तर का उपयोग करता है. कस्टम संपीड़न कार्यों के लिए गुणवत्ता स्तर, उपयोग BrotliEncoder(quality=N) जहां N 0 (सबसे तेज) और 11 (बेस्ट संपीड़न) के बीच है।.
क्या मैं सीधे WOFF2 ग्लिफ प्रवाह को अवशोषित कर सकता हूं?
WOFF2 ग्लिफ डेटा Brotli डिकंप्रेसेशन और एक फ़ॉन्ट-विशिष्ट का उपयोग करता है transform ( “परिवर्तित” तालिका प्रारूप) कच्चे ब्रोटीली प्रवाह को डिकोम्प्रेस करना अकेले एक उपयोगी फ़ॉन्ट को पुनर्प्राप्त करने के लिए पर्याप्त नहीं है - आपको WOFF2 फ़ाइल लोड करना होगा के माध्यम से FontLoader.open, जो दोनों ब्रोटली डिस्काउंट और विपरीत टेबल परिवर्तन।.