4 except (ImportError, OSError):
7 from ..parsers
import glaxnimate_helpers
11 from .base
import exporter
12 from .svg
import export_svg
15 if glaxnimate_helpers.has_glaxnimate:
16 @exporter("PNG", ["png"], [], {"frame"})
18 data = glaxnimate_helpers.serialize(animation,
"raster")
20 if isinstance(fp, str):
21 with open(fp,
'wb')
as file:
27 return glaxnimate_helpers.GlaxnimateRenderer(animation,
"raster", dpi)
30 def _export_cairo(func, animation, fp, frame, dpi):
31 intermediate = io.BytesIO()
32 export_svg(animation, intermediate, frame, pretty=
False)
34 func(file_obj=intermediate, write_to=fp, dpi=dpi)
36 @exporter("PNG", ["png"], [], {"frame"})
37 def export_png(animation, fp, frame=0, dpi=96):
38 _export_cairo(cairosvg.svg2png, animation, fp, frame, dpi)
52 export_png(self.animation, file, frame, self.dpi)
54 @exporter("PDF", ["pdf"], [], {"frame"})
56 _export_cairo(cairosvg.svg2pdf, animation, fp, frame, dpi)
58 @exporter("PostScript", ["ps"], [], {"frame"})
60 _export_cairo(cairosvg.svg2ps, animation, fp, frame, dpi)
def serialize(self, frame, file)
def __init__(self, animation, dpi)
def __exit__(self, *a, **k)
def export_ps(animation, fp, frame=0, dpi=96)
def export_png(animation, fp, frame=0, dpi=96)
def export_pdf(animation, fp, frame=0, dpi=96)
def PngRenderer(animation, dpi)
def export_svg(animation, file, frame=0, pretty=True, animated=False)