SVGIconImageList 2.2: nuovo SVG engine “Cairo”

La versione 2.2 di SVGIconsImageList vanta l’aggiunta di un nuovo “engine” SVG, che sfrutta la libreria “CairoSVG”, oltre ad una nuova proprietà AntialiasColor per migliorare ancora di più il rendering delle icone.

Grazie al contributo di Lübbe Onken è stato aggiunto un terzo engine, un wrapper per la libreria CairoSVG che permette anche la conversione di SVG in png o PDF.

Con questa versione è ora possibile scegliere tra 2 engine di base (Cairo wrapper o TSVG scritto in Delphi) oltre a impostare la preferenza nell’uso di Direct2D se la macchina su cui gira l’applicazione è installato Windows 10 Creators update.
Ecco una tabella che riassume le performance dei 3 Engine SVG disponibili:
Count Icon set D2D Cairo TSVG D2D Cairo TSVG
996 Font-Awesome 1469ms 1218ms 1470ms 121% 100% 121%
655 Papirus 1219ms 1656ms 1890ms 100% 136% 155%
5366 Material-Design 12016ms 9594ms 10531ms 125% 100% 110%

Utilizzando tante “piccole” icone SVG le tre librerie si equivalgono, ma se si processano file SVG di grosse dimensioni il supporto D2D è il più performante.

Oltre a questa aggiunta è stato introdotto anche il colore per l’effetto Antialias (AntialiasColor) visibile nel component editor: questo colore è utilizzando quando la VCL richiede alla ImageList una Bitmap (anziché sfruttare il meccanismo di Draw sul canvas): in questo caso tale colore è utile per generare una bitmap con trasparenza e sfumatura (antialias) verso il colore definito (qui i dettagli della discussione che ha portato alla sua implementazione).

Tutte le novità sono sempre disponibili nel repository:
https://github.com/EtheaDev/SVGIconImageList

Tutte le funzionalità sono ampiamente descritte nella documentazione online:
https://github.com/EtheaDev/SVGIconImageList/wiki

Spread the word. Share this post!