[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#64908: 29.1; svg parse failure
From: |
Alan Third |
Subject: |
bug#64908: 29.1; svg parse failure |
Date: |
Sat, 5 Aug 2023 10:58:26 +0100 |
On Sat, Aug 05, 2023 at 10:30:38AM +0200, David Ponce wrote:
> Hello,
>
> I attached a better patch, because it is possible to have svg image
> definition that combines viewBox, and percentage of width/height, like
> in this example:
>
> (insert-image
> '(image :type svg :data
> "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 22 22\"
> width=\"110%\" height=\"80%\">
> <defs id=\"defs3051\">
> <style type=\"text/css\" id=\"current-color-scheme\">
> .ColorScheme-Text {
> color:#232629;
> }
> </style>
> </defs>
> <path
> style=\"fill:currentColor;fill-opacity:1;stroke:none\"
> d=\"m7.707031 3l-.707031.707031 6.125 6.125 1.167969 1.167969-1.167969
> 1.167969-6.125 6.125.707031.707031 6.125-6.125
> 1.875-1.875-1.875-1.875-6.125-6.125\"
> class=\"ColorScheme-Text\"
> />
> </svg>"
> :scale 1))
>
> I hope Alan will find a simpler implementation for all these cases!
Hi David, I did a bit of thinking about what a percentage in the width
or height attributes actually means and how librsvg handles it.
I think we should always ignore it.
A percentage is intended as a percentage of the enclosing box. this
means if we set an image width of 100 pixels in Emacs, and the width
in the SVG is 50%, the image should be 50 pixels wide.
However we requested a width of 100 pixels, and Emacs will give us
that no matter what, even scaling it back up.
Additionally, librsvg will scale the drawn image to a width of 50%
anyway.
What this means is if we set the image width to 100 pixels, librsvg
will scale its drawing down by 50% and it should come out the correct
size within the 100 pixel wide image.
I hope that made sense, it took me a bit of thinking about it before I
came to this conclusion. It was really the fact that librsvg scales
its drawing anyway that made me decide there's no point in us also
scaling it.
I've attached a patch, can you give it a go and let me know how it
works.
Or if you disagree with my analysis above, let me know, because I'm
not 100% sure of it.
--
Alan Third
0001-Fix-percentage-sizes-in-SVG-display-bug-64908.patch
Description: Text Data
- bug#64908: 29.1; svg parse failure, Eli Zaretskii, 2023/08/03
- bug#64908: 29.1; svg parse failure, David Ponce, 2023/08/03
- bug#64908: 29.1; svg parse failure, Eli Zaretskii, 2023/08/04
- bug#64908: 29.1; svg parse failure, David Ponce, 2023/08/04
- bug#64908: 29.1; svg parse failure, Eli Zaretskii, 2023/08/04
- bug#64908: 29.1; svg parse failure, David Ponce, 2023/08/04
- bug#64908: 29.1; svg parse failure, Alan Third, 2023/08/04
- bug#64908: 29.1; svg parse failure, Eli Zaretskii, 2023/08/04
- bug#64908: 29.1; svg parse failure, David Ponce, 2023/08/04
- bug#64908: 29.1; svg parse failure, David Ponce, 2023/08/05
- bug#64908: 29.1; svg parse failure,
Alan Third <=
- bug#64908: 29.1; svg parse failure, Eli Zaretskii, 2023/08/05
- bug#64908: 29.1; svg parse failure, Alan Third, 2023/08/05
- bug#64908: 29.1; svg parse failure, Eli Zaretskii, 2023/08/05
- bug#64908: 29.1; svg parse failure, David Ponce, 2023/08/05
- bug#64908: 29.1; svg parse failure, Alan Third, 2023/08/05
- bug#64908: 29.1; svg parse failure, David Ponce, 2023/08/05
- bug#64908: 29.1; svg parse failure, Alan Third, 2023/08/05
- bug#64908: 29.1; svg parse failure, David Ponce, 2023/08/05
- bug#64908: 29.1; svg parse failure, Alan Third, 2023/08/05
- bug#64908: 29.1; svg parse failure, David Ponce, 2023/08/05