toyplot.reportlab.png module

Functions to render PNG images using Ghostscript.

toyplot.reportlab.png.render(canvas, fobj=None, width=None, height=None, scale=None)[source]

Render the PNG bitmap representation of a canvas using ReportLab and Ghostscript.

By default, canvas dimensions in CSS pixels are mapped directly to pixels in the output PNG image. Use one of width, height, or scale to override this behavior.

Parameters
  • canvas (toyplot.canvas.Canvas) – Canvas to be rendered.

  • fobj (file-like object or string, optional) – The file to write. Use a string filepath to write data directly to disk. If None (the default), the PNG data will be returned to the caller instead.

  • width (number, optional) – Specify the width of the output image in pixels.

  • height (number, optional) – Specify the height of the output image in pixels.

  • scale (number, optional) – Ratio of output image pixels to canvas pixels.

Returns

png – Returns None if the caller specifies the fobj parameter, returns the PNG image data otherwise.

Return type

bytes containing PNG image data, or None

toyplot.reportlab.png.render_frames(canvas, width=None, height=None, scale=None)[source]

Render a canvas as a sequence of PNG images using ReportLab and Ghostscript.

By default, canvas dimensions in CSS pixels are mapped directly to pixels in the output PNG images. Use one of width, height, or scale to override this behavior.

Parameters
  • canvas (toyplot.canvas.Canvas) – Canvas to be rendered.

  • width (number, optional) – Specify the width of the output image in pixels.

  • height (number, optional) – Specify the height of the output image in pixels.

  • scale (number, optional) – Ratio of output image pixels to canvas pixels.

Returns

frames – The caller must iterate over the returned frames and is responsible for all subsequent processing, including disk I/O, video compression, etc.

Return type

Sequence of bytes objects containing PNG image data.

Examples

>>> for frame, png in enumerate(toyplot.reportlab.png.render_frames(canvas)):
...   open("frame-%s.png" % frame, "wb").write(png)