10 คะแนน โดย xguru 2021-12-23 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • ระหว่างสร้างไลบรารี SVG สำหรับภาษา Zig กลับกลายเป็นต้องสร้างฟอร์แมตเวกเตอร์ของตัวเองขึ้นมา

  • ปัจจุบันในงานกราฟิกเวกเตอร์ ส่วนใหญ่ยังคงใช้ SVG

→ แต่การพัฒนาไลบรารี SVG ตัวใหม่ทำได้ยาก

⇨ เพราะมันถูกสร้างขึ้นบนพื้นฐานของ XML/CSS/ECMAScript เป็นต้น

⇨ อีกทั้งตัว SVG เองก็ซับซ้อนเกินไป ทำให้ภาพเดียวกันอาจแสดงผลต่างกันไปตามแต่ละ implementation

→ โดยเฉพาะเมื่อมี รวมอยู่ด้วย จะแตกต่างกันไปตามระบบ

⇨ ดังนั้นทุกวันนี้จึงมักใช้วิธีเลี่ยงปัญหาโดยแปลงข้อความทั้งหมดเป็น Path

  • TinyVG มีฟีเจอร์ 95% ที่จำเป็นจริง ๆ จาก SVG

→ ตัดเรื่องแอนิเมชัน, สคริปต์, รีซอร์สภายนอก, โครงสร้างเอกสารแบบลำดับชั้น ออกไป

  • เป้าหมายการออกแบบ

→ การเข้ารหัสแบบไบนารีที่กะทัดรัด (เล็กกว่า SVG)

→ รองรับได้หลายแพลตฟอร์ม: GPU (Game), CPU (แอปเดสก์ท็อป), Web, Embedded

→ เป็น subset ของ SVG

→ ใช้งานได้หลากหลาย: ไอคอนแอป/ทูลบาร์, กราฟและไดอะแกรม, การ์ตูน/ภาพวาด เป็นต้น

→ implementation ที่เรียบง่าย

  • SVG ที่ปรับแต่งอย่างเหมาะสมแล้วสามารถลดขนาดลงได้ถึง 40%

3 ความคิดเห็น

 
kbumsik 2021-12-23

อืม ถึงอย่างนั้นผมก็ยังอยากให้เป็นการเข้ารหัสแบบข้อความอยู่นะครับ

 
cometkim 2021-12-23

ยังมี ThorVG ที่ใช้ใน Tizen ด้วยครับ (ตัวย่อคงจะซ้ำกันสินะ 555;)

https://github.com/Samsung/thorvg

 
xguru 2021-12-23

แต่เว็บไซต์หลักอย่าง https://tinyvg.tech/ กลับล่มอยู่พอดีครับ

เป็นที่รู้กันทั่วไปอยู่แล้วว่า SVG มีความซับซ้อน และก็มีทางเลือกหลายแบบออกมาเช่นกัน

  • "Quite OK Image format - การบีบอัดภาพแบบไม่สูญเสียข้อมูล O(n)" ที่กล่าวถึงในบทความ https://th.news.hada.io/topic?id=5433