วิธี Aspose.Font ใช้ Brotli การกดเพื่อ WOFF2 ใน Python

วิธี Aspose.Font ใช้ Brotli การกดเพื่อ WOFF2 ใน Python

WOFF2 (Web Open Font Format 2) สะดวกข้อมูลกลิฟ์ของตัวเอง โดยใช้ Brotli, เครื่องหมายทั่วไป อัลโกทิมการกดแบบไม่มีความสูญเสียที่พัฒนาโดย Google. Aspose.Font FOSS สําหรับไพธอนมือ การทํางาน Brotli ทั้งหมดภายใน คุณไม่จําเป็นต้องติดตั้งการกดจากนอกใด ๆ ห้องสมุด BrotliEncoder และ BrotliDecoder มีคลาสสําหรับการเรียนรู้ในระดับชั้นประถมศึกษา การใช้ระดับต่ําเมื่อคุณต้องการที่จะสับหรือ decompress ข้อมูลสุ่มนอกจากระบบการทํางานของเครื่องมือที่สามารถทําความสะดวกได้ เส้นทางการแปลง 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 Font (Brotli-Compressed)

ทางมาตรฐาน: เปลี่ยนรูปแบบตัวอักษรใด ๆ เป็น 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 แฟนต์

เมื่อบรรทุกเครื่องมือ .woff2 ไฟล์, ห้องสมุดจะปลดความกดสับของ Brotli-compressed glyph ข้อมูลโดยอัตโนมัติ ก่อนเปิดเผยคุณสมบัติของตัวอักษร:

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 ไปยัง แยกความสับสนของกระแส glyph ก่อนการสร้าง Woff2Font อย่างเช่น.

ขั้นตอนที่ 5: การรหัส Brotli ระดับต่ํา

API ภายใน: หนองแว่นBrotliEncoder และ BrotliDecoder เป็นบริษัทภายใน สําหรับการกดตัวอักษร WOFF2 ต้องการใช้แบบที่เรียกว่า API ของสาธารณะที่แสดงในขั้นตอน 3-4 บนนี้.

การใช้งาน BrotliEncoder โดยตรงเมื่อคุณต้องการที่จะกดข้อมูลไบนารีแบบสุ่มด้วย บร็อตลี่ quality ปารามี (011) ติดตั้งระดับการกด:

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: การดักรหัส Brotli ระดับต่ํา

การใช้งาน BrotliDecoder.decode เพื่อการแยกความซับซ้อนของข้อมูลที่สับบร็อตลิ:

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 การถ่ายทอด ความสุกเต็ม อัตราการใช้งานต้องให้ในครั้งเดียว.

เวลาที่ใช้ API Brotli ระดับต่ํา

การ BrotliEncoder และ BrotliDecoder คลาสมีประโยชน์เมื่อ:

  • คุณจําเป็นต้องกดหรือปลีกการใช้งานแบบไบนารีที่สุ่ม โดยไม่ว่าจะเป็น การประมวลผลตัวอักษร (เช่น, การกัดเมตาข้อมูลตัวลอก หรือบล็อกข้อมูลตามความต้องการ).
  • คุณจําเป็นต้องตรวจสอบก่อนว่าพัสดุที่สกัดด้วย Brotli ได้ถูกสร้างให้ดี ก่อนที่จะส่งมันไปยังเครื่องวิเคราะห์ WOFF2.
  • คุณกําลังสร้างเครื่องทดสอบ ที่ต้องการข้อมูลความสัมพันธ์การกดที่ทราบไว้.

สําหรับการปฏิบัติตัวอักษรมาตรฐานทั้งหมด (การโหลด, การแปลง, เก็บ WOFF2) คุณไม่ได้ทํา ต้องการ API ระดับต่ํา FontLoader.open และ FontConverter.convert การจับมือ โบรทิลี อย่างโปร่งใส.

คําถามที่พบบ่อย

ห้องสมุดต้องการแพ็คเกจ Brotli ของภายนอกหรือไม่?

ไม่. Aspose.Font FOSS สําหรับ Python รวมการนํา Brotli มาใช้เอง ไม่มี brotli, brotlicffi,หรือแพ็คเกจที่คล้ายกันเป็นความจําเป็น.

คุณภาพการกดตัวของห้องสมุดใช้สําหรับ WOFF2 คืออะไร?

ห้องสมุดใช้ระดับคุณภาพแบบถัดไปสําหรับการออก WOFF2 เพื่อควบคุมความสามารถของตัวอัพโปนที่ติดต่อได้ ระดับคุณภาพสําหรับงานการกดความสับสนตามที่ต้องการ การใช้งาน BrotliEncoder(quality=N) ที่ N ระหว่าง 0 (ความเร็วที่สุด) และ 11 (การกดสั้นที่ดีที่สุด).

ฉันสามารถปลดความกดร่องของกระแสการ์ฟ WOFF2 ได้ตรงหรือไม่?

WOFF2 การใช้ข้อมูล glyph ใช้การรวมของ Brotli decompression และตัวอักษรที่เฉพาะ การปรับเปลี่ยน (รูปแบบตาราง “แปลง” ครับ) การปลดความสับสนของกระแส Brotli แหล่งที่ไม่ถูกผลิต เพียงคนเดียวไม่เพียงพอที่จะฟื้นฟูตัวอักษรที่ใช้ได้ คุณต้องบรรจุไฟล์ WOFF2 ผ่าน FontLoader.open, ซึ่งใช้ทั้งการผ่อนคลาย Brotli และการปรับปรุงความดันของ การแปลงตารางกลับ.

See Also

 ภาษาไทย