This looks really cool, thanks!

Would there be some advantage in making the Rasterizer
types in shiny/iconvg and image/vector somewhat more
uniform in the types they use? For example, vector.Rasterizer
seems to use f32.Vec2 pairs everywhere, but iconvg.Rasterizer
uses individual x, y arguments.

How feasible would it be (if at all) to translate from iconvg format
to svg format?

  cheers,
    rog.

On 24 October 2016 at 07:52, Nigel Tao <nigel...@golang.org> wrote:
> I was looking for a compact, binary format for simple vector graphics.
> I didn't find one that did all I wanted.
>
> SVG is the de facto standard for vector graphics, in the open source
> world. Unfortunately, https://www.w3.org/TR/SVG/single-page.html
> prints as 400 pages, not including the XML, CSS or XSLT
> specifications. The S in SVG doesn't stand for simple.
>
> The Haiku Vector Icon Format is pretty close. Unfortunately, I didn't
> find a written specification, only a single C implementation, tightly
> coupled, as far as I could tell, to the Haiku operating system. Also,
> https://www.haiku-os.org/articles/2009-09-14_why_haiku_vector_icons_are_so_small
> says that "you wouldn't really want to use HVIF to store generic
> vector graphics".
>
> OpenType fonts contain vector graphics (glyphs), and people use it for
> icon and emoji fonts. Unfortunately, there doesn't appear to be a
> clear standard for colored or partially transparent glyphs.
> https://en.wikipedia.org/wiki/OpenType#Color lists three competing
> approaches, built on PNG, SVG or neither.
>
> So, as an experiment, I invented a new format: IconVG. The format
> itself is documented at
> https://godoc.org/golang.org/x/exp/shiny/iconvg and there are some
> examples at https://go.googlesource.com/exp/+/master/shiny/iconvg/testdata
>
> The Material Design icon set (https://design.google.com/icons/)
> consists of 961 vector icons. As SVG files, this totals 312,887 bytes.
> As 24*24 pixel PNGs, 190,840 bytes. As 48*48 pixel PNGs, 318,219
> bytes. As IconVGs, 122,012 bytes.
>
> Like all of the golang.org/x/exp/shiny code, this is experimental, but
> I think that IconVG is at an interesting enough point now to share.
>
> The vector rasterizer at golang.org/x/image/vector is also a nice Go
> package, in my biased opinion, based on the algorithm described at
> https://medium.com/@raphlinus/inside-the-fastest-font-renderer-in-the-world-75ae5270c445#.ja3y3m6z2,
> but that's probably a different topic for a different time.
>
> Comments welcome.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to