Zostało wydane nowe, znaczące wydanie biblioteki rasteryzacji SVG - resvg.
Główne zmiany:
- Całkowicie nowa implementacja renderowania tekstu:
- Prawie cały stos od symbolu do krzywej Beziera jest teraz zaimplementowany w Rust:
wybór czcionek (dopasowanie czcionek i czcionka zastępcza), parsowanie TrueType, rozmieszczenie klastrów glifów zgodnie z regułami SVG (układ tekstu SVG).
Wyjątkiem jest kształtowanie tekstu, do którego jest używane
HarfBuzz. - Tekst zostanie teraz przekonwertowany na krzywe Bizeux przed renderowaniem.
Oznacza to, że moduł renderujący nie jest już wymagany do obsługi tekstu. - Obsługa tekstu dwukierunkowego (zmiana kolejności BIDI). Przykład.
- obsługa ścieżki tekstowej. Przykład 1, Przykład 2.
- Obsługa trybu pisania (tekst pionowy). Przykład.
- Prawidłowa obsługa odstępów między wyrazami i odstępami między literami. Przykład.
- Prawie cały stos od symbolu do krzywej Beziera jest teraz zaimplementowany w Rust:
- Nowy, eksperymentalny backend - Rakota (specjalne podziękowania dla jrmuizel).
Raqote to biblioteka grafiki 2D napisana w języku Rust.
Jest na wczesnym etapie rozwoju, ale jego możliwości są już wystarczające
użyj w resvg.
Jego główną zaletą jest to, że resvg można teraz zbudować z dokładnie jedną zależnością inną niż Rust – HarfBuzz. - Obsługuje renderowanie kształtów, renderowanie tekstu i renderowanie obrazów.
- Przyspieszono renderowanie obrazów rastrowych.
- Łączna liczba testów osiągnęła 1112.
Liczba udanych testów Inkscape i librsvg spadła o 75%. - Wiele drobnych poprawek i ulepszeń.
Wyniki testu. Tabela porównawcza.
Źródło: linux.org.ru