Aller au contenu
Instantanés

Instantanés : un widget en SVG ou en PNG

go-widgets/svg enveloppe n'importe quel rendu RGBA dans un SVG autonome, exact au bit près, ou l'écrit en PNG.

go-widgets/svg transforme un tampon RGBA en SVG autonome : une viewBox calée sur la taille en pixels du rendu, et les pixels sous forme de PNG en base 64 avec image-rendering: pixelated. Chaque pixel affiché est le pixel que le widget a dessiné — pas de revectorisation, pas de substitution de police — et il reste net à tout niveau de zoom.

// any RGBA producer
svg.Snapshot(f, surface, w, h, "my image")

// a toolkit widget
btn := toolkit.NewButton("Click me", nil)
btn.SetBounds(toolkit.Rect{W: 200, H: 40})
widget.Snapshot(f, btn, 200, 40, toolkit.DefaultLight(), "widget: button")
widget.PNG(p, btn, 200, 40, toolkit.DefaultLight())

Le libellé devient le <title> et l’aria-label du SVG, échappés. Le paquet racine ne dépend de rien ; le sous-paquet widget est séparé pour qu’un consommateur doté de son propre producteur de pixels n’entraîne pas la boîte à outils dans son graphe de modules.

svg/cmd/gallery-render rend le catalogue de widgets, en clair et en sombre : go-widgets.github.io/svg.

Créée le par tannevaled

Modifiée le par tannevaled