From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Alan Third Newsgroups: gmane.emacs.bugs Subject: bug#40845: SVG rendering issues Date: Sun, 26 Apr 2020 22:17:41 +0100 Message-ID: <20200426211741.GA93046@breton.holly.idiocy.org> References: <72ebf5eb-6b00-ebb4-dab3-a047e35ae1ae@gmail.com> <83mu6z7em5.fsf@gnu.org> <17307310-2afc-7941-8a48-5cd345d1ad63@gmail.com> <83k1237b2a.fsf@gnu.org> <20200425174651.GC82687@breton.holly.idiocy.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="84497"; mail-complaints-to="usenet@ciao.gmane.io" To: =?UTF-8?Q?Cl=C3=A9ment?= Pit-Claudel , Eli Zaretskii , 40845@debbugs.gnu.org, pipcet@gmail.com Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Apr 26 23:18:11 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jSofD-000Lt3-El for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 26 Apr 2020 23:18:11 +0200 Original-Received: from localhost ([::1]:46320 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jSofC-0003rZ-3n for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 26 Apr 2020 17:18:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:33608) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jSof4-0003r1-Sg for bug-gnu-emacs@gnu.org; Sun, 26 Apr 2020 17:18:03 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jSof4-0003sP-3v for bug-gnu-emacs@gnu.org; Sun, 26 Apr 2020 17:18:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:51802) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jSof3-0003rv-Nn for bug-gnu-emacs@gnu.org; Sun, 26 Apr 2020 17:18:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jSof3-0000Pq-K9 for bug-gnu-emacs@gnu.org; Sun, 26 Apr 2020 17:18:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Alan Third Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 26 Apr 2020 21:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40845 X-GNU-PR-Package: emacs Original-Received: via spool by 40845-submit@debbugs.gnu.org id=B40845.15879358691558 (code B ref 40845); Sun, 26 Apr 2020 21:18:01 +0000 Original-Received: (at 40845) by debbugs.gnu.org; 26 Apr 2020 21:17:49 +0000 Original-Received: from localhost ([127.0.0.1]:35106 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jSoer-0000P4-Fw for submit@debbugs.gnu.org; Sun, 26 Apr 2020 17:17:49 -0400 Original-Received: from idiocy.org ([217.169.17.33]:55369 helo=breton.holly.idiocy.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jSoeq-0000Oq-60 for 40845@debbugs.gnu.org; Sun, 26 Apr 2020 17:17:48 -0400 Original-Received: by breton.holly.idiocy.org (Postfix, from userid 501) id A3CF320225C2AE; Sun, 26 Apr 2020 22:17:41 +0100 (BST) Mail-Followup-To: Alan Third , =?UTF-8?Q?Cl=C3=A9ment?= Pit-Claudel , Eli Zaretskii , 40845@debbugs.gnu.org, pipcet@gmail.com Content-Disposition: inline In-Reply-To: <20200425174651.GC82687@breton.holly.idiocy.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:179113 Archived-At: On Sat, Apr 25, 2020 at 06:46:51PM +0100, Alan Third wrote: > On Sat, Apr 25, 2020 at 01:24:13PM -0400, Clément Pit-Claudel wrote: > > On 25/04/2020 13.02, Eli Zaretskii wrote: > > > IMO the foreground of an image shouldn't be affected by the > > > current face's foreground. Images should come with their own colors, > > > and be displayed like that. I think in the context of the discussion > > > that led to this bug report it's actually almost a must: we want > > > images with attractive colors to serve as the icons, we don't want > > > them to be affected by whatever face happens to be nearby. > > > > 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). > > 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. FWIW, with some experimentation I’ve found that this wrapping method can easily sort the scaling problems too. The process would have to go, roughly: * load the svg code * parse it with librsvg * extract the size * calculate the new size (compute_image_size in image.c should work fine) * base64 encode the original svg * wrap it in the new svg code * parse * produce the bitmap Then we’re probably as well skipping all the matrix calculation stuff, the same as we do for ImageMagick, as the bitmap should be the exact size we want. I’m happy to give this a go, but I’m not sure about base64 encoding. Do we already have a way of doing that to a char buffer? -- Alan Third