toyplot.png module

Generate PNG images.

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

Render the PNG bitmap representation of a canvas.

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

Notes

The output PNG is rendered using toyplot.reportlab.png.render(). This is subject to change.

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

Render a canvas as a sequence of PNG images.

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.

Notes

The output PNG images are rendered using toyplot.reportlab.png.render_frames(). This is subject to change.

Examples

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