resvg 0.7 β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° отрисовки SVG

Π’Ρ‹ΡˆΠ΅Π» Π½ΠΎΠ²Ρ‹ΠΉ, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для растСризации SVG — resvg.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния:

  • ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ новая рСализация отрисовки тСкста:
    • ΠŸΠΎΡ‡Ρ‚ΠΈ вСсь стСк ΠΎΡ‚ символа Π΄ΠΎ ΠΊΡ€ΠΈΠ²ΠΎΠΉ Π‘Π΅Π·ΡŒΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Rust:
      ΠΏΠΎΠ΄Π±ΠΎΡ€ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² (font matching and fallback), парсинг TrueType, расстановка кластСров Π³Π»ΠΈΡ„ΠΎΠ² ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ SVG (SVG text layout).
      Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся шСйпинг (text shaping), для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ
      HarfBuzz.
    • ВСкст Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΊΡ€ΠΈΠ²Ρ‹Π΅ Π‘ΠΈΠ·ΡŠΠ΅ Π΄ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π°.
      Π’ΠΎ Π΅ΡΡ‚ΡŒ Π±Π΅ΠΊΠ΅Π½Π΄ отрисовки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ обязан ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ тСкст.
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ тСкста (BIDI reordering). ΠŸΡ€ΠΈΠΌΠ΅Ρ€.
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° textPath. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 2.
    • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° writing-mode (Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ тСкст). ΠŸΡ€ΠΈΠΌΠ΅Ρ€.
    • ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° word-spacing ΠΈ letter-spacing. ΠŸΡ€ΠΈΠΌΠ΅Ρ€.
  • Новый, ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π΅ΠΊΠ΅Π½Π΄ — Raqote (ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ спасибо jrmuizel).
    Raqote — это графичСская 2D Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, написанная Π½Π° Rust.
    Она находится Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ стадии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΏΡ€ΠΈ этом Π΅Ρ‘ возмоТностСй ΡƒΠΆΠ΅ достаточно для
    использования в resvg.
    ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ Π΅Ρ‘ прСимущСством являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ resvg Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Ρ€ΠΎΠ²Π½ΠΎ с ΠΎΠ΄Π½ΠΎΠΉ Π½Π΅ Rust Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ — HarfBuzz.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° shape-rendering, text-rendering ΠΈ image-rendering.
  • УскорСна отрисовка растровых ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
  • ΠžΠ±Ρ‰Π΅Π΅ количСство тСстов достигло 1112-Ρ….
    ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… тСстов Ρƒ Inkscape ΠΈ librsvg ΡƒΠΏΠ°Π»ΠΎ Π·Π° 75%.
  • ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΌΠ΅Π»ΠΊΠΈΡ… исправлСний ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru