Foi lançado um novo e significativo release da biblioteca para rasterização SVG — resvg.
Principais mudanças:
- Uma nova implementação de renderização de texto:
- Quase toda a pilha, do caráter à curva de Bézier, agora está implementada em Rust:
seleção de fontes (font matching and fallback), parsing TrueType, posicionamento de glifos de acordo com as regras SVG (SVG text layout).
A exceção é o shaping de texto (text shaping), para o qual é utilizado
HarfBuzz. - Agora, o texto será convertido em curvas de Bézier antes da renderização.
Ou seja, o backend de renderização não precisa mais suportar texto. - Suporte a texto bidirecional (BIDI reordering). Exemplo.
- Suporte a textPath. Exemplo 1, exemplo 2.
- Suporte a writing-mode (texto vertical). Exemplo.
- Suporte correto a word-spacing e letter-spacing. Exemplo.
- Quase toda a pilha, do caráter à curva de Bézier, agora está implementada em Rust:
- Um novo backend experimental — Raqote (agradecimento especial a jrmuizel).
Raqote é uma biblioteca gráfica 2D, escrita em Rust.
Ela está em fase inicial de desenvolvimento, mas suas funcionalidades já são suficientes para
uso no resvg.
Seu principal benefício é que o resvg agora pode ser construído com apenas uma dependência não-Rust — HarfBuzz. - Suporte a shape-rendering, text-rendering e image-rendering.
- A renderização de imagens rasterizadas foi acelerada.
- O número total de testes chegou a 1112.
O número de testes bem-sucedidos no Inkscape e librsvg caiu para menos de 75%. - Vários pequenos correções e melhorias.
Resultados dos testes. Tabela comparativa.
Fonte: linux.org.ru
