unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#44206: 28.0.50; SVG image fail to show
@ 2020-10-25  3:25 styang
  2020-10-25 16:01 ` Alan Third
  0 siblings, 1 reply; 6+ messages in thread
From: styang @ 2020-10-25  3:25 UTC (permalink / raw)
  To: 44206

[-- Attachment #1: Type: text/plain, Size: 591 bytes --]

Some SVG images fail to show due to regression caused by:
b42481e22e * | Fix SVG image dimension calculations (bug#44065)

Please find the offending SVG file in attachment (in fact, all custom avatars in telega.el are not showing). When opened via `emacs -Q 222.svg`, it shows an empty box, with the following message in *Messages*

Invalid image size (see ‘max-image-size’)
Error parsing SVG image ‘(image :type svg :file /tmp/222.svg :scale 1 :max-width 1229 :max-height 585 :format nil)’


Affected librsvg version: 2:2.50.1-1 in Archlinux, and 2.44.10-2.1 in Debian.


[-- Attachment #2: SVG --]
[-- Type: image/svg+xml, Size: 10098 bytes --]

<?xml version="1.0" encoding="UTF-8"?><svg width="20" height="18.900000000000002" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs> <clipPath id="clip"> <circle cx="10" cy="9.450000000000001" r="8.4"></circle></clipPath></defs> <image xlink:href="data:image/jpeg;base64,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" clip-path="url(#clip)" height="16.8" width="16.8" y="1.05" x="1.5999999999999996"></image></svg>

[-- Attachment #3: Type: text/plain, Size: 178 bytes --]




-- 
Sheng Yang(杨圣), PhD student
Computer Science Department
University of Maryland, College Park
E-mail: styang@fastmail.com
E-mail(old): yangsheng6810@gmail.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#44206: 28.0.50; SVG image fail to show
  2020-10-25  3:25 bug#44206: 28.0.50; SVG image fail to show styang
@ 2020-10-25 16:01 ` Alan Third
  2020-10-25 17:17   ` Sheng Yang
  0 siblings, 1 reply; 6+ messages in thread
From: Alan Third @ 2020-10-25 16:01 UTC (permalink / raw)
  To: styang; +Cc: 44206

[-- Attachment #1: Type: text/plain, Size: 1507 bytes --]

On Sat, Oct 24, 2020 at 10:25:03PM -0500, styang@fastmail.com wrote:
> Some SVG images fail to show due to regression caused by:
> b42481e22e * | Fix SVG image dimension calculations (bug#44065)
> 
> Please find the offending SVG file in attachment (in fact, all
> custom avatars in telega.el are not showing).

Thanks. It appears there are more ways to define an SVG size than I've
had hot dinners.

librsvg is really not helping here. The documentation makes it pretty
clear that they don't want us to be querying the SVG dimensions and
would prefer us to just give them the dimensions we want and/or to use
Cairo.

That doesn't really work for us because we don't know up-front what
dimensions are usable for the image. It would be a different matter if
we were using the SVGs as GUI components like buttons or something.

Anyway, I've thrown in another attempt at calculating the image size,
and it works for this and also for the previous images. This one is
more complex because it's trying to convert CSS sizes to pixel sizes
and I don't think we can be entirely sure of some of them (like ex
height? Maybe we can query that, but then we have to know font and
font size).

I have no doubt that there are many more SVG files out there that
won't display properly even with this patch.

> Affected librsvg version: 2:2.50.1-1 in Archlinux, and 2.44.10-2.1 in Debian.

I'm concerned that librsvg 2.44 is affected as it should be using the
same code path as before the commit in question.
-- 
Alan Third

[-- Attachment #2: 0001-Calculate-SVG-image-sizes-more-accurately-bug-44206.patch --]
[-- Type: text/plain, Size: 4703 bytes --]

From a178c8b58e37550a897062f1edfe1f674bf7d210 Mon Sep 17 00:00:00 2001
From: Alan Third <alan@idiocy.org>
Date: Sun, 25 Oct 2020 15:45:07 +0000
Subject: [PATCH] Calculate SVG image sizes more accurately (bug#44206)

* src/image.c (svg_css_length_to_pixels): New function.
(svg_load_image): Try more methods to work out the image size.
---
 src/image.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 93 insertions(+), 5 deletions(-)

diff --git a/src/image.c b/src/image.c
index 5f6d9f4c44..2f9c21cbcc 100644
--- a/src/image.c
+++ b/src/image.c
@@ -9724,6 +9724,44 @@ svg_load (struct frame *f, struct image *img)
   return success_p;
 }
 
+static double
+svg_css_length_to_pixels (RsvgLength length)
+{
+  /* FIXME: 96 appears to be a pretty standard DPI but we should
+     probably use the real DPI if we can get it.  */
+  double dpi = 96;
+  double value = length.length;
+
+  switch (length.unit)
+    {
+    case RSVG_UNIT_PX:
+      /* Already a pixel value.  */
+      break;
+    case RSVG_UNIT_CM:
+      /* 2.54 cm in an inch.  */
+      value = dpi * value / 2.54;
+    case RSVG_UNIT_MM:
+      /* 25.4 mm in an inch.  */
+      value = dpi * value / 25.4;
+      break;
+    case RSVG_UNIT_PT:
+      /* 72 points in an inch.  */
+      value = dpi * value / 72;
+    case RSVG_UNIT_PC:
+      /* 6 picas in an inch.  */
+      value = dpi * value / 6;
+    case RSVG_UNIT_IN:
+      value *= dpi;
+      break;
+    default:
+      /* Probably one of em, ex, or %.  We can't know what the pixel
+         value is without more information.  */
+      value = 0;
+    }
+
+  return value;
+}
+
 /* Load frame F and image IMG.  CONTENTS contains the SVG XML data to
    be parsed, SIZE is its size, and FILENAME is the name of the SVG
    file being loaded.
@@ -9792,11 +9830,48 @@ svg_load_image (struct frame *f, struct image *img, char *contents,
 #if LIBRSVG_CHECK_VERSION (2, 46, 0)
   RsvgRectangle zero_rect, viewbox;
 
-  rsvg_handle_get_geometry_for_layer (rsvg_handle, NULL,
-                                      &zero_rect, &viewbox,
-                                      NULL, NULL);
-  viewbox_width = viewbox.x + viewbox.width;
-  viewbox_height = viewbox.y + viewbox.height;
+  /* Try the instrinsic dimensions first.  */
+  gboolean has_width, has_height, has_viewbox;
+  RsvgLength iwidth, iheight;
+
+  rsvg_handle_get_intrinsic_dimensions (rsvg_handle,
+                                        &has_width, &iwidth,
+                                        &has_height, &iheight,
+                                        &has_viewbox, &viewbox);
+
+  if (has_width && has_height)
+    {
+      /* Success!  We can use these values directly.  */
+      viewbox_width = svg_css_length_to_pixels (iwidth);
+      viewbox_height = svg_css_length_to_pixels (iheight);
+    }
+  else if (has_width && has_viewbox)
+    {
+      viewbox_width = svg_css_length_to_pixels (iwidth);
+      viewbox_height = svg_css_length_to_pixels (iwidth)
+        * viewbox.width / viewbox.height;
+    }
+  else if (has_height && has_viewbox)
+    {
+      viewbox_height = svg_css_length_to_pixels (iheight);
+      viewbox_width = svg_css_length_to_pixels (iheight)
+        * viewbox.height / viewbox.width;
+    }
+  else if (has_viewbox)
+    {
+      viewbox_width = viewbox.width;
+      viewbox_height = viewbox.height;
+    }
+  else
+    {
+      /* We haven't found a useable set of sizes, so try working out
+         the visible area.  */
+      rsvg_handle_get_geometry_for_layer (rsvg_handle, NULL,
+                                          &zero_rect, &viewbox,
+                                          NULL, NULL);
+      viewbox_width = viewbox.x + viewbox.width;
+      viewbox_height = viewbox.y + viewbox.height;
+    }
 #else
   /* The function used above to get the geometry of the visible area
      of the SVG are only available in librsvg 2.46 and above, so in
@@ -9809,6 +9884,19 @@ svg_load_image (struct frame *f, struct image *img, char *contents,
   viewbox_width = dimension_data.width;
   viewbox_height = dimension_data.height;
 #endif
+
+  if (viewbox_width == 0 || viewbox_height == 0)
+    {
+      /* We do not have any usable dimensions, so make some up.  The
+         values below are supposedly the default values most web
+         browsers use for SVGs with no set size.  */
+      /* FIXME: At this stage we should perhaps consider rendering the
+         image out to a bitmap and getting the dimensions from
+         that.  */
+      viewbox_width = 300;
+      viewbox_height = 150;
+    }
+
   compute_image_size (viewbox_width, viewbox_height, img->spec,
                       &width, &height);
 
-- 
2.26.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#44206: 28.0.50; SVG image fail to show
  2020-10-25 16:01 ` Alan Third
@ 2020-10-25 17:17   ` Sheng Yang
  2020-10-26 19:36     ` Alan Third
  0 siblings, 1 reply; 6+ messages in thread
From: Sheng Yang @ 2020-10-25 17:17 UTC (permalink / raw)
  To: Alan Third; +Cc: 44206

[-- Attachment #1: Type: text/plain, Size: 1726 bytes --]

Thanks for your effort! Patch works for me, librsvg 2.50 on Archlinux. 

On Sun, Oct 25, 2020, at 11:01, Alan Third wrote:
> Anyway, I've thrown in another attempt at calculating the image size,
> and it works for this and also for the previous images. This one is
> more complex because it's trying to convert CSS sizes to pixel sizes
> and I don't think we can be entirely sure of some of them (like ex
> height? Maybe we can query that, but then we have to know font and
> font size).
> 
> I have no doubt that there are many more SVG files out there that
> won't display properly even with this patch.

I checked places where I use SVG files, especially telega, everything I checked looks good to me now. Hope there are not too many corner cases. 

> librsvg is really not helping here. The documentation makes it pretty
> clear that they don't want us to be querying the SVG dimensions and
> would prefer us to just give them the dimensions we want and/or to use
> Cairo.

So could the future of SVG in Emacs lie in Cairo? Forgive me if I am asking a dumb question.

> > Affected librsvg version: 2:2.50.1-1 in Archlinux, and 2.44.10-2.1 in Debian.
> 
> I'm concerned that librsvg 2.44 is affected as it should be using the
> same code path as before the commit in question.

My fault, librsvg 2.44 on Debian is NOT affect by this. (I guess I was having internet issue with my vps running debian. Last time I waited for a few seconds and the image was not showing up. I waited a bit longer this time.)


Sheng Yang(杨圣), PhD candidate
Computer Science Department
University of Maryland, College Park
E-mail: styang@fastmail.com
E-mail (old but still used): yangsheng6810@gmail.com


[-- Attachment #2: Type: text/html, Size: 2573 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#44206: 28.0.50; SVG image fail to show
  2020-10-25 17:17   ` Sheng Yang
@ 2020-10-26 19:36     ` Alan Third
  2020-11-10  0:54       ` Sheng Yang
  0 siblings, 1 reply; 6+ messages in thread
From: Alan Third @ 2020-10-26 19:36 UTC (permalink / raw)
  To: Sheng Yang; +Cc: 44206

On Sun, Oct 25, 2020 at 12:17:16PM -0500, Sheng Yang wrote:
> Thanks for your effort! Patch works for me, librsvg 2.50 on Archlinux. 
> 
> On Sun, Oct 25, 2020, at 11:01, Alan Third wrote:
> > Anyway, I've thrown in another attempt at calculating the image size,
> > and it works for this and also for the previous images. This one is
> > more complex because it's trying to convert CSS sizes to pixel sizes
> > and I don't think we can be entirely sure of some of them (like ex
> > height? Maybe we can query that, but then we have to know font and
> > font size).
> > 
> > I have no doubt that there are many more SVG files out there that
> > won't display properly even with this patch.
> 
> I checked places where I use SVG files, especially telega,
> everything I checked looks good to me now. Hope there are not too
> many corner cases.

Thanks.

> > librsvg is really not helping here. The documentation makes it pretty
> > clear that they don't want us to be querying the SVG dimensions and
> > would prefer us to just give them the dimensions we want and/or to use
> > Cairo.
> 
> So could the future of SVG in Emacs lie in Cairo? Forgive me if I am
> asking a dumb question.

Not a dumb question. This came up a little while back and I think
there might be potential issues with getting Cairo on Windows, so it's
not necessarily a great solution.

One thing is that, in theory, if we were using SVGs for parts of the
UI, like fringe bitmaps, we wouldn't have to worry too much about
resizing and so on as we control the SVGs and can define them to suit
our uses.

> > > Affected librsvg version: 2:2.50.1-1 in Archlinux, and 2.44.10-2.1 in Debian.
> > 
> > I'm concerned that librsvg 2.44 is affected as it should be using the
> > same code path as before the commit in question.
> 
> My fault, librsvg 2.44 on Debian is NOT affect by this. (I guess I
> was having internet issue with my vps running debian. Last time I
> waited for a few seconds and the image was not showing up. I waited
> a bit longer this time.)

Ah, good to know. Thanks!
-- 
Alan Third





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#44206: 28.0.50; SVG image fail to show
  2020-10-26 19:36     ` Alan Third
@ 2020-11-10  0:54       ` Sheng Yang
  2020-11-10 10:45         ` Alan Third
  0 siblings, 1 reply; 6+ messages in thread
From: Sheng Yang @ 2020-11-10  0:54 UTC (permalink / raw)
  To: Alan Third; +Cc: 44206

[-- Attachment #1: Type: text/plain, Size: 426 bytes --]

It has been some time since the last activity on this bug report, and the broken SVG display can be annoying for uses that need it, e.g. telega users.

@Alan: Is there any particular reason for not merging your patch to the master?


Sheng Yang(杨圣), PhD candidate
Computer Science Department
University of Maryland, College Park
E-mail: styang@fastmail.com
E-mail (old but still used): yangsheng6810@gmail.com


[-- Attachment #2: Type: text/html, Size: 942 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#44206: 28.0.50; SVG image fail to show
  2020-11-10  0:54       ` Sheng Yang
@ 2020-11-10 10:45         ` Alan Third
  0 siblings, 0 replies; 6+ messages in thread
From: Alan Third @ 2020-11-10 10:45 UTC (permalink / raw)
  To: Sheng Yang; +Cc: 44206-done

On Mon, Nov 09, 2020 at 06:54:22PM -0600, Sheng Yang wrote:
> It has been some time since the last activity on this bug report,
> and the broken SVG display can be annoying for uses that need it,
> e.g. telega users.
> 
> @Alan: Is there any particular reason for not merging your patch to
> the master?

Hi, sorry for the delay, it was pushed to master yesterday.
-- 
Alan Third





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-11-10 10:45 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-25  3:25 bug#44206: 28.0.50; SVG image fail to show styang
2020-10-25 16:01 ` Alan Third
2020-10-25 17:17   ` Sheng Yang
2020-10-26 19:36     ` Alan Third
2020-11-10  0:54       ` Sheng Yang
2020-11-10 10:45         ` Alan Third

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).