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

Дадаць каментар