1
0
Fork 0

Try to use modern rsvg functions when we can

This commit is contained in:
jvoisin 2022-03-16 20:23:49 +01:00
parent 35092562e6
commit 12582ba2f5
1 changed files with 16 additions and 5 deletions

View File

@ -30,12 +30,23 @@ class SVGParser(exiftool.ExiftoolParser):
svg = Rsvg.Handle.new_from_file(self.filename) svg = Rsvg.Handle.new_from_file(self.filename)
except GLib.GError: except GLib.GError:
raise ValueError raise ValueError
dimensions = svg.get_dimensions()
surface = cairo.SVGSurface(self.output_filename, try:
dimensions.height, _, _, _, _, has_viewbox, viewbox = svg.get_intrinsic_dimensions()
dimensions.width) if has_viewbox is False:
raise ValueError
_, width, height = svg.get_intrinsic_size_in_pixels()
except AttributeError:
dimensions = svg.get_dimensions()
height, width = dimensions.height, dimensions.width
surface = cairo.SVGSurface(self.output_filename, height, width)
context = cairo.Context(surface) context = cairo.Context(surface)
svg.render_cairo(context) try:
svg.render_document(context, viewbox)
except AttributeError:
svg.render_cairo(context)
surface.finish() surface.finish()
return True return True