Re: Using SVG module from Skia

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Tomaž,

I think there can be a good rationale for using Skia, or other good external SVG libraries, considering the use case of the two SVG import filters, which includes converting an SVG unchanged:

1) svgio: For Insert -> Image -> From File
2) filter/source/svg used to open SVG file

Quoting from Fernand:

From a users point of view:
Inserting a SVG-image in Writer, Calc or Impress must been done
"unchanged" because users will in 99% off all cases not edit a Image.
Opening in Draw is a different game where in most cases the user has the
intention tot edit a image and save back SVG or as a other format.
https://lists.freedesktop.org/archives/libreoffice/2015-November/070909.html

In this way, converting documents containing embedded unchanged SVG files is an important use case, and it is meaningful to have a faster conversion with more SVG features supported.

Theoretically, If we convert the document to PDF using Skia/PDF backend, and before that, convert the embedded SVG files to the Skia vector representation, then it may be possible to bypass the drawinglayer, and create a document consisting of SVG files (and not only the SVG files separately) to PDF, and have the embedded SVG files as vector in the output, not as bitmap.

This the usual use case for many users, as those who are interested in editing SVG files usually use other tools like Inkscape.

Regards,
Hossein

On 28.04.2023 09:47, Tomaž Vajngerl wrote:
Hi Hossein,

On Tue, Apr 25, 2023 at 9:59 PM Hossein Nourikhah
<hossein@xxxxxxxxxxxxxxx> wrote:

Hello,

I have studied some of the bugs from the svgio module of
LibreOffice. As
described in the svgio/README.md, "svgio module uses sax for reading
xml
and turns it into drawinglayer primitives. The rendering is done via

drawinglayer primitives".

As you say - SVG is turned into drawinglayer primitives, so we keep
the SVG in a vector graphic form and can - if needed - transform that
into another vector graphic format (EMF for example). If you want to
implement it with Skia, you also have to import it into drawinglayer
primitives and not render the vector graphic into a bitmap (like we do
for example with "PDF as an image", where we render the PDF into a
bitmap, which has major flaws). This is IMHO not that easy to achieve
and not sure if skia supports that (it probably is possible to convert
into skia internal vector representation and convert that to drawing
layer primitives).

The only place where rendering the SVG to a bitmap would be useful is
for icons, but then I have always said - why spend time on integrating
another SVG library instead of fixing svgio instead...

Tomaž



[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux