GNU bug report logs -
#40845
SVG rendering issues
Previous Next
Full log
Message #41 received at 40845 <at> debbugs.gnu.org (full text, mbox):
On Sat, Apr 25, 2020 at 5:46 PM Alan Third <alan <at> idiocy.org> wrote:
> On Sat, Apr 25, 2020 at 01:24:13PM -0400, Clément Pit-Claudel wrote:
> > Yes, of course: if an image has a foreground color, it should be
> > respected. But it's not uncommon for SVG images to not include a
> > foreground color, as shown in the repro. In that case, the image
> > should use the current foreground color, I think. (of course, a
> > :foreground keyword, if any, should take precedence; that is issue
> > 4).
For reference, the relevant chunk of librsvg source code is this:
// https://www.w3.org/TR/SVG/color.html#ColorProperty
make_property!(
ComputedValues,
Color,
// The SVG spec allows the user agent to choose its own default
for the "color" property.
// We don't allow passing in an initial CSS in the public API, so
we'll start with black.
//
// See https://bugzilla.gnome.org/show_bug.cgi?id=764808 for a
case where this would
// be useful - rendering equations with currentColor, so they take
on the color of the
// surrounding text.
default: cssparser::RGBA::new(0, 0, 0, 0xff),
inherits_automatically: true,
newtype_parse: cssparser::RGBA,
);
> Lars fixed the foreground issue for eww by wrapping svg files in
> another svg. See svg--wrap-svg in shr.el (bug#37159).
>
> I think this is the only practical way to handle svg files with no
> foreground colour set. To do this when loading _any_ svg we’d probably
> have to move it into create-image or image.c.
I think it's a neat hack, but it's just one of the more obvious ways
of working around an annoying limitation of librsvg (Ideally, we'd use
a library without such a limitation by default and fall back to
modifying/wrapping SVGs when using a limited library.)
For applications which change glyphs' foreground colors a lot, it
might be preferrable to coax rsvg into providing an alpha-only map for
the foreground plus an RGBA map for the background and blend them
together, and that approach would work for other image types.
This bug report was last modified 4 years and 270 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.